salesfusion-dev / slim-views
Slim 框架的 Smarty 和 Twig 视图解析器包
Requires
- php: >=5.3.0
- salesfusion-dev/slim: >=2.6.0
Suggests
- smarty/smarty: Smarty templating system
- twig/twig: Twig templating system
This package is not auto-updated.
Last update: 2024-09-19 08:15:00 UTC
README
此仓库包含以下模板框架的自定义视图类。您可以通过在 Slim 框架引导文件中引入适当的类,并使用所选视图类的实例初始化您的 Slim 应用程序,或者使用 Composer(推荐方式)来使用这些自定义视图类。
Slim Views 仅正式支持以下视图。
- 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 公共许可证