https://github.com/kenjis/codeigniter-ss-twig
A Simple and Secure Twig integration for CodeIgniter 3.x and 4.x
https://github.com/kenjis/codeigniter-ss-twig
codeigniter codeigniter3 codeigniter4 hacktoberfest twig
Last synced: about 2 months ago
JSON representation
A Simple and Secure Twig integration for CodeIgniter 3.x and 4.x
- Host: GitHub
- URL: https://github.com/kenjis/codeigniter-ss-twig
- Owner: kenjis
- License: mit
- Created: 2015-05-21T23:40:32.000Z (about 10 years ago)
- Default Branch: 4.x
- Last Pushed: 2024-01-18T11:51:13.000Z (over 1 year ago)
- Last Synced: 2025-03-28T11:11:44.545Z (about 2 months ago)
- Topics: codeigniter, codeigniter3, codeigniter4, hacktoberfest, twig
- Language: PHP
- Homepage:
- Size: 177 KB
- Stars: 167
- Watchers: 24
- Forks: 46
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE.md
Awesome Lists containing this project
README
# CodeIgniter Simple and Secure Twig
[](https://packagist.org/packages/kenjis/codeigniter-ss-twig) [](https://packagist.org/packages/kenjis/codeigniter-ss-twig) [](https://packagist.org/packages/kenjis/codeigniter-ss-twig) [](https://packagist.org/packages/kenjis/codeigniter-ss-twig)
This package provides simple Twig integration for [CodeIgniter](https://github.com/codeigniter4/CodeIgniter4) 4.x.
If you use CodeIgniter 3, check [master](https://github.com/kenjis/codeigniter-ss-twig/tree/master) branch. But Upgrading to CodeIgniter
4 is strongly recommended.## Requirements
* PHP 7.4 or later
* CodeIgniter 4.2.11 or later
* Twig 3.4.3 or later## Installation
### With Composer
~~~
$ cd /path/to/codeigniter/
$ composer require kenjis/codeigniter-ss-twig
~~~## Usage
### Loading Twig Library
~~~php
$this->twig = new \Kenjis\CI4Twig\Twig();
~~~You can override the default configuration:
~~~php
$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:
~~~php
$this->twig->display('welcome', $data);
~~~The above code renders `Views/welcome.twig`.
Render Twig template:
~~~php
$output = $this->twig->render('welcome', $data);
~~~The above code renders `Views/welcome.twig`.
### Adding a Global Variable
~~~php
$this->twig->addGlobal('sitename', 'My Awesome Site');
~~~### Getting Twig\Environment Instance
~~~php
$twig = $this->twig->getTwig();
~~~### Supported CodeIgniter Helpers
* `base_url()`
* `site_url()`
* `anchor()`
* `form_open()`
* `form_close()`
* `form_error()`
* `form_hidden()`
* `set_value()`
* `csrf_field()`
* `validation_list_errors()`Some helpers are added the functionality of auto-escaping for security.
> **Warning**
> `validation_list_errors()` shows Validation Errors by `Services::validation()->listErrors()`,
> and if you use user input for Validation Error messages, attackers may do XSS.
> In such a case, validate user input and escape it by yourself.### Adding Your Functions & Filters
You can add your functions and filters with configuration:
~~~php
$config = [
'functions' => ['my_helper'],
'functions_safe' => ['my_safe_helper'],
'filters' => ['my_filter'],
];
$this->twig = new \Kenjis\CI4Twig\Twig($config);
~~~If your function explicitly outputs HTML code, you 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
* https://github.com/kenjis/ci4-twig-sample
* https://github.com/kenjis/ci4-tettei-apps (Japanese)## How to Run Tests
~~~
$ cd codeigniter-ss-twig
$ composer install
$ vendor/bin/phpunit
~~~## Related Projects for CodeIgniter 4.x
### Libraries
- [CodeIgniter 3 to 4 Upgrade Helper](https://github.com/kenjis/ci3-to-4-upgrade-helper)
- [CodeIgniter3-like Captcha](https://github.com/kenjis/ci3-like-captcha)
- [PHPUnit Helper](https://github.com/kenjis/phpunit-helper)
- [CodeIgniter4 Attribute Routes](https://github.com/kenjis/ci4-attribute-routes)
- [CodeIgniter Simple and Secure Twig](https://github.com/kenjis/codeigniter-ss-twig)
- [CodeIgniter4 Viewi Demo](https://github.com/kenjis/ci4-viewi-demo)### Tutorials
- [CodeIgniter 4 News Tutorial](https://github.com/kenjis/ci4-news)
- [CodeIgniter 4 Validation Tutorial](https://github.com/kenjis/ci4-validation-tutorial)
- [CodeIgniter4 Code Modules Test](https://github.com/kenjis/ci4-modules-test)
- [CodeIgniter 4 File Upload](https://github.com/kenjis/ci4-file-upload)
- [CodeIgniter 4 QueryBuilder Batch Sample](https://github.com/kenjis/ci4-qb-batch-sample)### Building Development Environment
- [CodeIgniter4 Application Template](https://github.com/kenjis/ci4-app-template)
- [CodeIgniter4 Composer Installer](https://github.com/kenjis/ci4-composer-installer)
- [docker-codeigniter-apache](https://github.com/kenjis/docker-codeigniter-apache)