Как реализовать layout в MVC?

В интернете полно информации как реализовать layout в php, но там нечто такое:
<?php
$title = 'title';
require 'layout.php';
require 'view.php';

Я хочу узнать как реализовать layout похожий на Yii, где view рендерится первым и в самом view пишем:
<?php 
$this->title = 'title';
?>
<p>view.php </p>
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
@inFureal
Смотри, суть в том, чтобы сделать как у Yii2/Laravel, нужно знать для чего в пыхе двойной знак доллара.
<?php

abstract class Controller {

    function render(string $file, array $vars = []) {

        foreach ($vars as $key => $value)
            $$key = $value;

        ob_start();
        include $file;
        return ob_get_clean();
    }

}

class MainController extends Controller {

    function index() {
        return $this->render('hello.php', [
            'title' => 'Hello',
            'message' => 'Hello world!'
        ]);
    }

}


И в hello.php
<h1><?= $title ?></h1>
<p><?= $message ?></p>
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы