Twig — это мощный шаблонизатор, который используется в современных PHP-фреймворках для удобной работы с представлениями.
CodeIgniter 4 поддерживает интеграцию с Twig, что позволяет создавать более чистые и удобные шаблоны.
Для интеграции Twig в CodeIgniter 4 установите необходимый пакет:
composer require codeigniter4/twig
После установки создаем сервис для загрузки Twig в app/Config/Services.php:
namespace Config;
use CodeIgniter\Config\BaseService;
use Twig\Environment;
use Twig\Loader\FilesystemLoader;
class Services extends BaseService
{
public static function twig(?bool $getShared = true): Environment
{
if ($getShared) {
return static::getSharedInstance('twig');
}
$loader = new FilesystemLoader(APPPATH . 'Views');
return new Environment($loader, [
'cache' => WRITEPATH . 'cache/twig',
'debug' => true,
]);
}
}
Пример контроллера, который использует Twig для рендеринга представлений:
namespace App\Controllers;
use CodeIgniter\Controller;
use Config\Services;
class HomeController extends Controller
{
public function index()
{
$twig = Services::twig();
echo $twig->render('home.twig', ['title' => 'Главная']);
}
}
Создадим шаблон Views/home.twig:
{{ title }}
Добро пожаловать в Doka25C!
CodeIgniter 4 теперь поддерживает Twig!
В Twig можно использовать **наследование шаблонов**, что позволяет разделять код на части.
Views/layout.twig
{% block title %}Doka25C{% endblock %}
{% block header %}Добро пожаловать!{% endblock %}
{% block content %}{% endblock %}
Теперь можно создать страницу, которая наследует базовый шаблон:
{% extends "layout.twig" %}
{% block title %}Главная страница{% endblock %}
{% block header %}Главная{% endblock %}
{% block content %}
Это главная страница Doka25C, оформленная через Twig.
{% endblock %}