kenjis / codeigniter-ss-twig
A Simple and Secure Twig integration for CodeIgniter
Installs: 63 933
Dependents: 2
Suggesters: 4
Security: 0
Stars: 146
Watchers: 25
Forks: 38
Open Issues: 2
Requires
- php: >=7.2.0
- twig/twig: ^3.1.1
Requires (Dev)
- codeigniter4/framework: ^4.0.4
- phpunit/phpunit: ^8.5
README
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
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