kaleidpixel/codeigniter4-twig

twig for Codeigniter 4

v1.2.5 2024-02-03 03:57 UTC

This package is auto-updated.

Last update: 2024-05-03 04:38:11 UTC


README

This library is a fork of daycry/twig, published by Mr. daycry, with a few added functionalities. We would like to express our gratitude to Mr. daycry. The added features are as follows:

  • Added Toolbar Collectors to enable the function of the View column in the Toolbar.

Twig, the flexible, fast, and secure template language for Codeigniter 4

Twig is a template language for PHP.

Twig uses a syntax similar to the Django and Jinja template languages which inspired the Twig runtime environment.

Build Status Coverage Status Downloads GitHub release (latest by date) GitHub stars GitHub license

Installation via composer

Use the package with composer install

> composer require kaleidpixel/codeigniter4-twig

Manual installation

Download this repo and then enable it by editing app/Config/Autoload.php and adding the KaleidPixel\Codeigniter4Twig namespace to the $psr4 array. For example, if you copied it into app/ThirdParty:

$psr4 = [
    'Config'      => APPPATH . 'Config',
    APP_NAMESPACE => APPPATH,
    'App'         => APPPATH,
    'KaleidPixel\Codeigniter4Twig' => APPPATH .'ThirdParty/twig/src',
];

Configuration

Run command:

> php spark twig:publish

This command will copy a config file to your app namespace. Then you can adjust it to your needs. By default file will be present in app/Config/Twig.php.

Usage Loading Library

$twig = new \KaleidPixel\Codeigniter4Twig\Twig();
$twig->display( 'file.html', [] );

Usage as a Service

$twig = \Config\Services::twig();
$twig->display( 'file.html', [] );

Usage as a Helper

In your BaseController - $helpers array, add an element with your helper filename.

protected $helpers = [ 'twig_helper' ];

And then you can use the helper

$twig = twig_instance();
$twig->display( 'file.html', [] );

Add Globals

$twig = new \KaleidPixel\Codeigniter4Twig\Twig();

$session = \Config\Services::session();
$session->set( array( 'name' => 'Daycry' ) );
$twig->addGlobal( 'session', $session );
$twig->display( 'file.html', [] );

File Example

<!DOCTYPE html>
<html lang="es">  
    <head>    
        <title>Example</title>    
        <meta charset="UTF-8">
        <meta name="title" content="Example">
        <meta name="description" content="Example">   
    </head>  
    <body>
        <h1>Hi {{ name }}</h1>
        {{ dump( session.get( 'name' ) ) }}
    </body>  
</html>

How Run Tests

cd vendor\KaleidPixel\Codeigniter4Twig\
composer install
vendor\bin\phpunit