Задать вопрос
@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 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Skillbox
    PHP-разработчик. Базовый уровень
    3 месяца
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Stepik
    PHP (pro)
    2 недели
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
Пригласить эксперта
Ответы на вопрос 1
Создайте отдельный класс View, который будет отвечать за отображение.

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

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

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

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