@alexh7854

Все переменные undefined в шаблоне, почему не работает класс View?

Здравствуйте.

Пишу класс View для своего проекта, но почему то он не работает.
Все переменные undefined в шаблоне.

Код класса:

namespace Kernel\Foundation;

class View
{
    /**
     * @param string $template
     * @throws \Exception
     */
    private static function loadTemplate(string $template):void
    {
        $templateFile = TEMPLATES . DS . ltrim($template, '\/') . '.php';

        if(file_exists($templateFile)) {
            include $templateFile;
        } else {
            throw new \Exception('Template ' . $templateFile . ' was not found!');
        }

    }

    /**
     * @param string $template
     * @param array $data
     * @throws \Exception
     */
    public static function render(string $template, array $data = [])
    {
        extract($data);
        ob_start();
        static::loadTemplate($template);
        $output = ob_get_clean();
        echo $output;
    }

}


Код контроллера:

use Kernel\Foundation\View;

class IndexController
{
    public function index()
    {
        $data = ['one' => 1, 'two' => 2];
        
        View::render('index', $data);
    }
    
}


Не понимаю что не так. должно введь вроде работать.
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
ты переменные в loadTemplate не передаешь, для примера https://github.com/koseven/koseven/blob/devel/syst...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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