slim / views
为 Slim 框架提供的 Smarty 和 Twig 视图解析器包
Requires
- php: >=5.3.0
- slim/slim: >=2.4.0
Suggests
- smarty/smarty: Smarty templating system
- twig/twig: Twig templating system
This package is auto-updated.
Last update: 2022-11-10 10:19:46 UTC
README
此存储库包含以下模板框架的定制视图类。您可以通过在您的 Slim 框架引导文件中引入适当的类并使用所选视图类的实例初始化您的 Slim 应用程序,或者使用 Composer(推荐方式)来使用这些自定义视图类。
Slim 视图仅官方支持以下列出的视图。
- Smarty
- Twig
安装方法
使用 Composer
在您的项目中运行以下 composer 命令进行安装
$ php composer require slim/views
Smarty
如何使用
<?php require 'vendor/autoload.php'; $app = new \Slim\Slim(array( 'view' => new \Slim\Views\Smarty() ));
要使用 Smarty 选项,请执行以下操作
$view = $app->view(); $view->parserDirectory = dirname(__FILE__) . 'smarty'; $view->parserCompileDirectory = dirname(__FILE__) . '/compiled'; $view->parserCacheDirectory = dirname(__FILE__) . '/cache';
Twig
如何使用
<?php require 'vendor/autoload.php'; $app = new \Slim\Slim(array( 'view' => new \Slim\Views\Twig() ));
要使用 Twig 选项,请执行以下操作
$view = $app->view(); $view->parserOptions = array( 'debug' => true, 'cache' => dirname(__FILE__) . '/cache' );
除了所有这些之外,我们还提供了一些辅助函数,这些函数包含在两个视图解析器中。为了开始使用这些函数,您可以将它们添加到相应的视图解析器中,如下所示
Twig
$view->parserExtensions = array( new \Slim\Views\TwigExtension(), );
Smarty
$view->parserExtensions = array( dirname(__FILE__) . '/vendor/slim/views/Slim/Views/SmartyPlugins', );
以下列出了这些辅助函数。
- urlFor
- siteUrl
- baseUrl
- currentUrl
urlFor
Twig
在您的 Twig 模板中,您将编写
{{ urlFor('hello', {"name": "Josh", "age": "19"}) }}
您可以通过这样做轻松传递对象或数组变量
<a href="{{ urlFor('hello', {"name": person.name, "age": person.age}) }}">Hello {{ name }}</a>
如果您需要为 urlFor 函数中的 getInstance 方法指定 appname,请将 appname 设置为模板中函数的第三个参数
<a href="{{ urlFor('hello', {"name": person.name, "age": person.age}, 'admin') }}">Hello {{ name }}</a>
Smarty
在您的 Smarty 模板中,您将编写
{urlFor name="hello" options="name.Josh|age.26"}
或者使用新的数组语法
{urlFor name="hello" options=["name" => "Josh", "age" => "26"]}
您可以通过正常方式或使用 (.) 来轻松传递数组变量
<a href="{urlFor name="hello" options="name.{$person.name}|age.{$person.age}"}">Hello {$name}</a>
如果您需要为 urlFor 函数中的 getInstance 方法指定 appname,请将 appname 参数设置在您的函数中
<a href="{urlFor name="hello" appname="admin" options="name.{$person.name}|age.{$person.age}"}">Hello {$name}</a>
siteUrl
Twig
在您的 Twig 模板中,您将编写
{{ siteUrl('/about/me') }}
Smarty
在您的 Smarty 模板中,您将编写
{siteUrl url='/about/me'}
baseUrl
Twig
在您的 Twig 模板中,您将编写
{{ baseUrl() }}
Smarty
在您的 Smarty 模板中,您将编写
{baseUrl}
currentUrl
Twig
在您的 Twig 模板中,您将编写
{{ currentUrl() }}
Smarty
在您的 Smarty 模板中,您将编写
{currentUrl}
作者
许可证
MIT 公共许可证