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])}

说明

  1. 获取此软件包。您现在可以通过composer获取此软件包。运行composer require ryanknu/zendsmarty将下载此软件包。
  2. 获取Smarty。我没有将其作为依赖项捆绑,因为我希望与您想要的任何Smarty兼容。输入composer require smarty/smarty将获取最新版本。
  3. 在项目配置中设置策略,使其指向ZSmarty。这会因项目而异,但这是我能够提供的最佳摘要。这就像在Zend Expressive配置中设置以下行一样简单。(ZF 2.0及以下版本请参考下面的说明)
    Zend\Expressive\Template\TemplateRendererInterface::class =>
        ZSmarty\Factory\StrategyFactory::class,

说明(旧风格)

  1. 下载此软件包的源代码,将ZSmarty复制到项目/vendor/ZSmarty
  2. 在config/application.config.php中将'ZSmarty'添加到模块列表中
  3. 将"'Smarty' => 'ZSmarty\StrategyFactory',"添加到模块.config.php文件的'factories'部分(使其能够找到工厂)
  4. 将"'strategies' => array('Smarty')"添加到模块.config.php文件的'view_manager'部分
  5. 将'use ZSmarty\SmartyModel;'添加到控制器源文件的use语句中
  6. 像使用ViewModel对象一样使用SmartyModel