Интеграция Twig в Doka25C

1. Что такое Twig?

Twig — это мощный шаблонизатор, который используется в современных PHP-фреймворках для удобной работы с представлениями.

CodeIgniter 4 поддерживает интеграцию с Twig, что позволяет создавать более чистые и удобные шаблоны.

2. Установка

Для интеграции Twig в CodeIgniter 4 установите необходимый пакет:

composer require codeigniter4/twig

3. Настройка CodeIgniter 4 для 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,
        ]);
    }
}
        

4. Использование в контроллерах

Пример контроллера, который использует 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' => 'Главная']);
    }
}
        

5. Пример шаблона

Создадим шаблон Views/home.twig:





    
    {{ title }}
    


    

Добро пожаловать в Doka25C!

CodeIgniter 4 теперь поддерживает Twig!

6. Расширение шаблонов

В Twig можно использовать **наследование шаблонов**, что позволяет разделять код на части.

6.1 Базовый шаблон Views/layout.twig





    
    {% block title %}Doka25C{% endblock %}
    


    

{% block header %}Добро пожаловать!{% endblock %}

{% block content %}{% endblock %}

6.2 Дочерний шаблон

Теперь можно создать страницу, которая наследует базовый шаблон:


{% extends "layout.twig" %}

{% block title %}Главная страница{% endblock %}

{% block header %}Главная{% endblock %}

{% block content %}
    

Это главная страница Doka25C, оформленная через Twig.

{% endblock %}

Связанные страницы

Вернуться на главную