分形器 / Smarty提供者
为Silex提供的Smarty服务提供者
Requires
- php: >=5.3.2
- smarty/smarty: 3.1.*@dev
Requires (Dev)
- silex/silex: 1.0.*@dev
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()}