salesfusion-dev/slim-views

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

0.2.0 2020-07-14 13:09 UTC

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}

作者

Josh Lockhart

Andrew Smith

许可协议

MIT 公共许可证