Как использовать PHP в качестве движка шаблонов вместо Twig в Silex

Мнение между разработчиками об использовании шаблонного движка или нет в PHP-проектах очень противоречиво и с ним нелегко покончить. Разработчики, которым не нравятся движки шаблонов, такие как Smarty или Twig, могут свободно думать о том, что они хотят, и действовать так, как им хочется, это означает, что они продолжают использовать подробные шаблоны PHP. В Silex Twig используется по умолчанию во многих скелетах из-за его простоты, однако вы можете реализовать PHP в качестве механизма шаблонов, также используя Symfony Templating Engine. В этой статье мы покажем вам, как это реализовать, и как это сделать в Silex 2.

1. Установите шаблонизатор Symfony.

Каждый, имеющий базовые знания PHP, может реализовать свой собственный движок шаблонов для Silex с PHP, однако есть лучший способ сделать это благодаря Symfony Template Engine. Компонент Templating в Symfony предоставляет все инструменты, необходимые для создания любой системы шаблонов с простым PHP. Он предоставляет инфраструктуру для загрузки файлов шаблонов и при необходимости отслеживает их изменения. Он также предоставляет конкретную реализацию механизма шаблонов с использованием PHP с дополнительными инструментами для экранирования и разделения шаблонов на блоки и макеты.

Чтобы использовать его в Silex, вам нужно установить компонент с помощью composer с помощью следующей команды:

composer require symfony/templating

После установки компонента вы сможете импортировать классы, необходимые для рендеринга PHP-шаблонов вместо Twig в Silex.

2. Реализация шаблонного движка

Как вы знаете, вы можете легко назначить пользовательский контент $app переменная Silex, многие компоненты определены таким образом, как Twig, DB и т. д. Таким же образом, мы зарегистрируем сервис рендеринга, который не будет перезаписывать Twig, как вам это может понадобиться (или, может быть, нет, однако вы можете Оставь оба). В вашем app.php файл (или точка входа, где $ app доступен), чтобы зарегистрировать компонент:

3. Использование PHP шаблонизатора

Логика с движком шаблонов PHP остается прежней, вы возвращаете результат метода рендеринга, который ожидает в качестве первого аргумента имя php-файла, который вы хотите отрендерить, а в качестве второго аргумента - массив с именем и значением переменных, которые вы используете. хочу перейти к виду:

// Register the index route
$app->get('/', function () use ($app) {
// Use the PHP templating engine to render the PHP file
// the path of the file would be originally:
// ./project/phptemplates/index.html.php
return $app['templating']->render('index.html.php', array(
"name" => "Carlos"
));
})->bind('homepage');

Учитывая, что содержание нашего index.html.php Файл имеет следующий код:

Как только вы получите доступ к своему приложению по указателю, вы увидите «Добро пожаловать, Карлос!» как ответ. Обратите внимание, что PHP Templating Engine от Symfony предлагает множество функций, таких как реализация макетов, слотов и автоматического экранирования, так что не забудьте прочитать больше о компоненте на официальном сайте Symfony здесь.

Ссылка на основную публикацию
Adblock
detector