slim/views

此包已被 废弃 并不再维护。未建议替代包。

为 Slim 框架提供的 Smarty 和 Twig 视图解析器包

0.1.3 2014-12-09 23:48 UTC

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}

作者

Josh Lockhart

Andrew Smith

许可证

MIT 公共许可证