ryanknu / zendsmarty
此软件包的最新版本(0.3)没有可用的许可信息。
0.3
2017-01-13 20:37 UTC
This package is not auto-updated.
Last update: 2024-09-29 01:03:51 UTC
README
为Zend Framework 2设计的Smarty模块。截至0.3版本,它现在也兼容Zend Expressive,但您的软件包必须需要zendframework/zend-expressive-zendviewrenderer
,或者在Zend Expressive快速设置期间选择Zend View Manager
作为您的渲染器。
此软件包旨在将Smarty正确地实现到Zend Framework中,与其它方法不同,它模仿了ZF 2的工作方式。它创建视图模型、策略和渲染器,并为它们提供工厂。
限制
您需要将模块.config.php中的所有模板名称更改为指向.tpl文件。.tpl扩展名将触发Smarty视图渲染策略,一切都将按您希望的方式工作。通过{$renderer}
访问smarty文件内的$this
是可行的。例如,<a href="{$renderer->url('object/edit', ['id' => 1234])}">
。
常规Smarty限制适用,这使得将phtml文件更改为tpl文件并不总是容易。您可以通过{call_user_func...}
传递函数并调用它们,并且您可以传递数组,但它们必须使用方括号语法{if in_array(4, [1,2,3,4])}
。
说明
- 获取此软件包。您现在可以通过composer获取此软件包。运行
composer require ryanknu/zendsmarty
将下载此软件包。 - 获取Smarty。我没有将其作为依赖项捆绑,因为我希望与您想要的任何Smarty兼容。输入
composer require smarty/smarty
将获取最新版本。 - 在项目配置中设置策略,使其指向ZSmarty。这会因项目而异,但这是我能够提供的最佳摘要。这就像在Zend Expressive配置中设置以下行一样简单。(ZF 2.0及以下版本请参考下面的说明)
Zend\Expressive\Template\TemplateRendererInterface::class =>
ZSmarty\Factory\StrategyFactory::class,
说明(旧风格)
- 下载此软件包的源代码,将ZSmarty复制到项目/vendor/ZSmarty
- 在config/application.config.php中将'ZSmarty'添加到模块列表中
- 将"'Smarty' => 'ZSmarty\StrategyFactory',"添加到模块.config.php文件的'factories'部分(使其能够找到工厂)
- 将"'strategies' => array('Smarty')"添加到模块.config.php文件的'view_manager'部分
- 将'use ZSmarty\SmartyModel;'添加到控制器源文件的use语句中
- 像使用ViewModel对象一样使用SmartyModel