axis / axis-hybrid-templating-plugin
symfony 1.x 插件,允许在 symfony 中使用多个模板引擎。
Requires
- php: >=5.3.0
- axis/axis-service-container-plugin: dev-master
- composer/installers: *
- symfony/class-loader: 2.2.x-dev
Suggests
- axis/axis-twig-plugin: Allow to use Twig templates
This package is not auto-updated.
Last update: 2020-05-15 16:49:58 UTC
README
此插件允许您在 symfony 1.x 中同时使用不同的模板引擎,并按优先级顺序进行回退。
例如,您可以为应用程序布局装饰器指定 PHP 模板,并为动作视图指定 Twig 模板。
安装
使用 Composer。只需将此依赖项添加到您的 composer.json
文件中。
"require": { "axis/axis-hybrid-templating-plugin": "dev-master" }
配置
要启用项目中混合模板,您应该配置 symfony 使用混合视图进行布局和部分,使用 module.yml
配置文件。
all: view_class: \Axis\S1\HybridTemplating\View\Hybrid # means HybridView class partial_view_class: \Axis\S1\HybridTemplating\View\Hybrid # means HybridPartialView class
这就完成了。
默认情况下,唯一启用的模板引擎是 PHP。您可以根据以下说明启用其他模板引擎。
模板引擎优先级
有时您会在项目中找到多个给定部分或控制器视图的模板。那么问题是什么将被首先加载。要控制模板引擎的优先级,您可以在项目的 factories.yml
文件中使用 Hybrid 模板加载器的 priority
选项。
hybrid_templating.loader: parameters: priority: [twig, php] # these are extensions of supported templating engines in order of priority
或
hybrid_templating.loader: parameters: priority: twig: 100 # highest priority > will be checked first php: 1 # lowest priority > will be checked last
这种配置可以导致您控制的明确的模板加载器顺序。默认情况下,模板引擎按其在 factories.yml
文件中定义的顺序进行检查。
注意:此 factories.yml
配置方法由 AxisServiceContainerPlugin 支持
Twig
要使用 Twig 模板引擎,您应该将 axis/axis-twig-plugin
包含到您的项目中。只需在您的 composer.json
文件中添加对该包的依赖项。
"require": { "axis/axis-twig-plugin": "dev-master" }
然后,您应该配置 Twig 引擎以用于混合模板。将以下内容添加到您的项目的 factories.yml
文件中:
all: hybrid_templating.engine.twig: class: \Axis\S1\HybridTemplating\Engine\TwigTemplatingEngine parameters: twig: context://twig tag: hybrid_templating.engine
使用示例
假设您有一个应用程序
apps/
- hybrid/
- config/
- app.yml
- module.yml
- routing.yml
- settings.yml
- modules/
- homepage/
- actions/
- actions.class.php
- templates/
- _partial.twig
- indexSucces.php
- templates/
- layout.twig
如您所注意到的,您的控制器视图使用 PHP 模板,而布局和部分使用 Twig 模板。这将透明地切换模板引擎上下文,并在模板之间传递指定的变量。