moltin/slim-views

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

0.1.2 2014-04-03 16:31 UTC

This package is not auto-updated.

Last update: 2024-09-24 16:08:02 UTC


README

此存储库包含以下模板框架的自定义视图类。您可以通过在Slim框架引导文件中包含适当的类并使用所选视图类的实例初始化Slim应用程序,或者使用Composer(推荐方式)来使用这些自定义视图类。

Slim Views仅官方支持以下视图:

  • Smarty
  • Twig

如何安装

使用Composer

在项目根目录中创建一个composer.json文件

{
    "require": {
        "slim/views": "0.1.*"
    }
}

然后运行以下composer命令

$ php composer.phar install

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

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}

作者

Josh Lockhart

Andrew Smith

许可

MIT公共许可证