分形器/Smarty提供者

为Silex提供的Smarty服务提供者

dev-master 2012-12-03 22:12 UTC

This package is not auto-updated.

Last update: 2024-09-22 02:39:14 UTC


README

SmartyServiceProvider提供了与[Smarty] (https://smarty.php.ac.cn)模板引擎的集成。

参数

  • smarty.dir (字符串,可选): 存放Smarty分布目录的路径(包含libs和demo文件夹)。如果没有提供,提供者假定smarty类已经加载。

  • smarty.instance (\Smarty, 可选): Smarty类的实例。如果没有提供,将由提供者创建。

  • smarty.options (数组,可选): 要设置的smarty类变量的关联数组。有关更多信息,请参阅[Smarty文档] (https://smarty.php.ac.cn/docs/en/api.variables.tpl)。

  • smarty.configure (可调用,可选): 一个可调用对象,它接受一个参数 - Smarty类实例。它在提供者的register()方法期间被调用。您可以使用此选项进行一些自定义smarty配置,例如。

服务

  • smarty: The Smarty实例。与Smarty交互的主要方式。

注册

请确保您将[Smarty] (https://smarty.php.ac.cn)的一个副本放置在vendor/Smarty目录中

use FractalizeR\Smarty\ServiceProvider as SmartyServiceProvider;
define('SMARTY_PATH', __DIR__ . '/../../../../vendor/Smarty');
        
$app->register(new SmartyServiceProvider(), array(
          'smarty.dir' => SMARTY_PATH,
          'smarty.options' => array(
                'template_dir' => SMARTY_PATH . '/demo/templates',
                'compile_dir' => SMARTY_PATH . '/demo/templates_c',
                'config_dir' => SMARTY_PATH . '/demo/configs',
                'cache_dir' => SMARTY_PATH . '/demo/cache',),));

注意

Smarty没有编译到silex.phar文件中。您必须将[Smarty] (https://smarty.php.ac.cn)的副本添加到您的应用程序中。

用法

Smarty提供者提供了一个smarty服务

$app->get('/hello/{name}', function ($name) use ($app) {
    return $app['smarty']->display('hello.tpl', array(
        'name' => $name,
    ));
});

这将渲染一个名为hello.tpl的文件,该文件位于配置的模板文件夹中,您在smarty.options中传递。

在任何Smarty模板中,app变量指向应用程序对象。因此,您可以在视图中访问任何服务。例如,要访问$app['request']->getHost(),只需在模板中放入以下内容

{$app.request->getHost()}