codeigniter-ss-twig
codeigniter-ss-twig copied to clipboard
A Simple and Secure Twig integration for CodeIgniter 3.x and 4.x
CodeIgniter Simple and Secure Twig
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