jascha030 / twig-service
简单的twig服务接口和类,我乐于在开发过程中将其围绕Environment对象。
Requires
- php: ^8
- container-interop/service-provider: ^0.4.0
- twig/twig: ^3.3
Requires (Dev)
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2024-09-09 20:44:50 UTC
README
一组简单的接口和类的基本实现,用于与Twig一起使用。
入门指南
需求
- PHP
^8 - Composer
*(但推荐2.2或更高版本)
安装
composer require jascha030/twig-service
使用
该包内容包含一个实现接口的简单服务类,该接口扩展了一个额外接口,该接口实现了一些与twig/twig无关的功能。
TwigServiceInterface
主要接口是Jascha030\Twig\TwigServiceInterface,它要求一个类实现三个方法。
方法
getEnvironment
获取TwigEnvironment。
TwigServiceInterface::getEnvironment(): \Twig\Environment
- 返回
\Twig\Environment实例。
继承方法
以下方法是从Jascha030\Twig\Templater\TemplaterInterface继承的。
这样做是为了为将来替换您的Twig特定实现提供另一种模板方法的可能性,而无需重构代码库,例如,通过使用DIC。
因此,建议使用绑定到
TemplaterInterface的容器绑定,而不是TwigServiceInterface。出于相同的原因,建议其他类依赖于TemplaterInterface。对于依赖类,使用Twig\Environment实例渲染输出的事实不应相关。
renderString
渲染模板并返回输出字符串。
TemplaterInterface::renderString(string $template, array $context = []): string
- 参数
$template(string): twig模板名称。$context(array): 键=>对应模板变量的值。
- 返回渲染的模板作为
string
render
渲染并输出模板。
TemplaterInterface::render(string $template, array $context = []): void
- 参数
$template(string): twig模板名称。$context(array): 键=>对应模板变量的值。
- 返回
void(预期输出将被回显)。
默认实现
此包还提供了一个类,作为TwigServiceInterface的最基本实现,即Jascha030\Twig\TwigService.php。此类通过添加需要Twig\Environment的构造函数实现了所有三个方法。
以下是一个使用FilesystemLoader构建服务的简单示例
<?php use Twig\Loader\FilesystemLoader; use Twig\Environment; use Jascha030\Twig\TwigService; /** * Include Composer's autoloader. */ include __DIR__ . '/vendor/autoload.php'; $dir = __DIR__ . '/path/to/your/twig/template/folder'; $environment = new Environment(new FilesystemLoader($dir)); $service = new TwigService($environment);
开发
克隆此存储库,并在存储库内部运行composer install。
代码风格
代码风格以.php-cs-fixer.dist.php中php-cs-fixer配置的形式提供。为了方便执行,使用提供的Composer脚本命令。
composer run format
如果您全局安装了php-cs-fixer,请将其传递给fix命令的--config参数。
php-cs-fixer fix --config=.php-cs-fixer.dist.php
单元测试
在phpunit.xml中提供了一个phpunit的配置。
为了方便执行,使用提供的Composer脚本命令。
composer run phpunit
如果您全局安装了phpunit,并想使用它,请通过--config参数传递配置。
phpunit --config phpunit.xml
动机
我个人的偏好是包装\Twig\Environment类到一个服务类中,我反复编写,而它是一个非常简单的类。
所以(终于)我将其添加到一个简单的包中,包括单元测试。
许可证
本作曲家包是一个开源软件,许可协议为MIT 许可协议
注意:为了找到适合您项目的正确许可协议,请访问 GitHub 的https://choosealicense.com/,或阅读有关在 GitHub 上为您的项目许可文档页面上的任何其他信息。