codeigniter-ss-twig icon indicating copy to clipboard operation
codeigniter-ss-twig copied to clipboard

A Simple and Secure Twig integration for CodeIgniter 3.x and 4.x

CodeIgniter Simple and Secure Twig

Latest Stable Version Total Downloads Latest Unstable Version License

This package provides simple Twig integration for CodeIgniter 4.x.

If you use CodeIgniter3, check master branch.

Requirements

  • PHP 7.2 or later
  • CodeIgniter 4.0.4 or later
  • Twig 3.1.1 or later

Installation

With Composer

$ cd /path/to/codeigniter/
$ composer require kenjis/codeigniter-ss-twig

Usage

Loading Twig Library

$this->twig = new \Kenjis\CI4Twig\Twig();

You can override the default configuration:

$config = [
	'paths' => ['/path/to/twig/templates', VIEWPATH],
	'cache' => '/path/to/twig/cache',
];
$this->twig = new \Kenjis\CI4Twig\Twig($config);

Rendering Templates

Render Twig template and output to browser:

$this->twig->display('welcome', $data);

The above code renders Views/welcome.twig.

Render Twig template:

$output = $this->twig->render('welcome', $data);

The above code renders Views/welcome.twig.

Adding a Global Variable

$this->twig->addGlobal('sitename', 'My Awesome Site');

Getting Twig\Environment Instance

$twig = $this->twig->getTwig();

Supported CodeIgniter Helpers

  • base_url
  • site_url
  • anchor
  • form_open
  • form_close
  • form_error
  • form_hidden
  • set_value

Some helpers are added the functionality of auto-escaping for security.

Adding Your Functions

You can add your functions with configuration:

$config = [
	'functions' => ['my_helper'],
	'functions_safe' => ['my_safe_helper'],
];
$this->twig = new \Kenjis\CI4Twig\Twig($config);

If your function explicitly outputs HTML code, you will want the raw output to be printed. In such a case, use functions_safe, and you have to make sure the output of the function is XSS free.

References

Documentation

  • https://twig.symfony.com/doc/3.x/

Samples

@TODO

  • https://github.com/kenjis/codeigniter-twig-samples
  • https://github.com/kenjis/codeigniter-tettei-apps

How to Run Tests

$ cd codeigniter-ss-twig
$ composer install
$ vendor/bin/phpunit

Related Projects for CodeIgniter 4.x