nepada / template-factory
此包已被放弃且不再维护。未建议替代包。
强大的Latte模板工厂。
v2.8.1
2022-05-19 18:37 UTC
Requires
- php: >=7.4.0 <8.2
- latte/latte: ^2.7.1@dev
- nette/application: ^3.1.4@dev
- nette/utils: ^3.2@dev
Requires (Dev)
- mockery/mockery: 1.5.0
- nepada/coding-standard: 7.4.2
- nepada/phpstan-nette-tester: 0.4.0
- nette/bootstrap: >=3.0@dev
- nette/di: ^3.0.6@dev
- nette/schema: ^1.0.3@dev
- nette/tester: 2.4.2
- php-parallel-lint/php-parallel-lint: 1.3.2
- phpstan/phpstan: 1.6.3
- phpstan/phpstan-mockery: 1.0.0
- phpstan/phpstan-nette: 1.0.0
- phpstan/phpstan-strict-rules: 1.1.0
- spaze/phpstan-disallowed-calls: 2.3.2
Suggests
- nette/di: for integration with Nette DI container
README
包已废弃
此包被认为已过时并被放弃。自本包发布以来,Nette和Latte已经发生了很大变化。现在可以通过Latte 3扩展和TemplateFactory::$onCreate
回调组合来替代本包的功能。
安装
通过Composer
$ composer require nepada/template-factory
在config.neon
中注册扩展
extensions: templateFactory: Nepada\Bridges\TemplateFactoryDI\TemplateFactoryExtension
使用
自动注入翻译器
谁想在每个模板上手动调用setTranslator()
?使用此模板工厂,您只需在配置中定义ITranslator
服务,它就会自动注入到创建的模板中。
自定义Latte过滤器
您需要在模板中使用自定义Latte过滤器吗?它们的定义非常简单
templateFactory: filters: doStuff: [@someService, doStuff]
模板参数
这是回答“如何将参数/服务从DI容器传入模板?”的终极答案
templateFactory: parameters: foo: bar service: @anotherService containerParam: %param%
模板提供者
与参数类似,您也可以设置latte提供者
templateFactory: providers: foo: bar service: @anotherService containerParam: %param%
自定义模板函数
与过滤器类似,您也可以为自定义模板函数定义回调
templateFactory: functions: doStuff: [@someService, doStuff]
从另一个CompilerExtension
配置
某些扩展可能需要在安装Latte过滤器或向模板注入参数/服务。这可以通过在beforeCompile()
阶段自定义TemplateConfigurator
的设置来完成。
$templateConfigurator = $containerBuilder->getByType(Nepada\TemplateFactory\TemplateConfigurator::class); $containerBuilder->getDefinition($templateConfigurator) ->addSetup('addFilter', ['filterName', $callback]) ->addSetup('addFunction', ['functionName', $callback]) ->addSetup('addProvider', ['provider', $value]) ->addSetup('addParameter', ['parameter', $value]) ->addSetup('addParameter', ['parameter', '@someService']);