@naneri
PHP разработчик.

Как использовать Laravel Blade за пределами Ларавел в виде класса?

В инструкции пакета Laravel Blade написано как подключать шаблонизатор:
require 'vendor/autoload.php';

use Philo\Blade\Blade;

$views = __DIR__ . '/views';
$cache = __DIR__ . '/cache';

$blade = new Blade($views, $cache);
echo $blade->view()->make('hello')->render();


А как сделать чтобы пользоваться им как в Laravel
View::make('template');

Не инициализировать же переменную в каждом контроллере... В конструктор родительского контроллера регистрацию шаблонизатора также не охота включать. Как быть?
  • Вопрос задан
  • 721 просмотр
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
возьмите pimple (или php-di), и вообще почитайте про инверсию зависимостей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mahoho
@mahoho
Full stack certified PHP developer.
Возьмите Blade с помощью composer:
composer require philo/laravel-blade --save-dev
А потом в коде:
$blade = new \Philo\Blade\Blade("/path/to/blade/views", "/path/to/blade/cache");
echo $blade->view()->make('templateName', $params)->render(); //здесь как в laravel

Можно этот вызов завернуть в функцию view(): //аналогично как в Laravel:
function view($view, $params = []){
		$blade = new \Philo\Blade\Blade("/path/to/blade/views", "/path/to/blade/cache");
		$blade = $this->loadCompiler();
		return $blade->view()->make($view, $params)->render();
	}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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