kenjis/codeigniter-ss-twig

为CodeIgniter提供的简单且安全的Twig集成

v4.2.0 2023-03-20 07:58 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

本包为CodeIgniter 4.x提供了简单的Twig集成。

如果您使用CodeIgniter 3,请检查master分支。但强烈建议升级到CodeIgniter 4。

要求

  • PHP 7.4或更高版本
  • CodeIgniter 4.2.11或更高版本
  • Twig 3.4.3或更高版本

安装

使用Composer

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

使用方法

加载Twig库

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

您可以覆盖默认配置

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

渲染模板

渲染Twig模板并输出到浏览器

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

上述代码渲染了Views/welcome.twig

渲染Twig模板

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

上述代码渲染了Views/welcome.twig

添加全局变量

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

获取Twig\Environment实例

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

支持的CodeIgniter辅助函数

  • base_url()
  • site_url()
  • anchor()
  • form_open()
  • form_close()
  • form_error()
  • form_hidden()
  • set_value()
  • csrf_field()
  • validation_list_errors()

一些辅助函数增加了安全性的自动转义功能。

警告 validation_list_errors()通过Services::validation()->listErrors()显示验证错误,如果使用用户输入作为验证错误消息,攻击者可能会进行XSS攻击。在这种情况下,您需要自行验证用户输入并进行转义。

添加您的函数和过滤器

您可以通过配置添加您的函数和过滤器

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

如果您的函数明确输出HTML代码,并且希望输出为原始输出。在这种情况下,请使用functions_safe,并且您必须确保函数的输出是无XSS的

参考

文档

示例

如何运行测试

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

与CodeIgniter 4.x相关的项目

教程

构建开发环境