@driverx18

Как в данном случае передаются значения в вид?

Раньше работал только с фреймворками, с нуля не писал реализацию MVC, въезжал в нее так, как было устроено во фреймворках. Сегодня решил написать свою реализацию, и вот, когда я получаю из модели данные и мне нужно их передать то на данный момент это работает у меня так:
public function actionIndex() {
$tasks = Task::all();
require_once($this->view('index'));
}


И в том самом index файле действительно если вардамплю, то данные появлятся. Но в фреймворках я привык к другому: в Yii2 мы делаем это так: return $this->render('тут название вида', compact(данные)); - то есть, в фреймворках мы явно передаем нужные данные. Каким образом в моем случае массив tasks таки передается, если у меня реализации передачи этого массива вo view даже нигде не прописано, а сама view подключается лишь через require_once? (И вообще, приемлим ли такой вариант?)
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
Создайте отдельный класс View, который будет отвечать за отображение.

class View
{
    // ...
    
    static function render(string $filename, array $params = [])
    {
        // ...
    }
}

И потом уже вызывайте View::render('index', ['tasks' => $tasks])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы