此包已被放弃,不再维护。没有建议替代包。

v1.2.0 2013-08-17 14:58 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:26:18 UTC


README

Build Status

Appendr是一个小型插件,允许在子模板中更改模板字符串。

安装

$ composer require vierbergenlars/appendr:*

将扩展与您的Twig环境注册

<?php

// ...
$twig = new Twig_Environment($loader);
$twig->addFunction(new \Twig_SimpleFunction('headTitle', new \vierbergenlars\Appendr));
// headTitle is just an example name, you can name it anything you want.

示例

<!DOCTYPE html>
<html>
    <head>
        <title>{{ headTitle('Website Name') }}</title>
        {% do headTitle().setSeparator('~') %}
        {% do headTitle().setDefaultAttachOrder('APPEND') %}
    </head>
    <body>
        {# ... #}
    </body>
</html>
{% extends 'base.twig' %}
{% do headTitle('Page name', 'PREPEND') %}

API

所有方法都是可链的(除了获取器)。

假设headTitle是appendr的一个实例。

  • headTitle().append('Title')(等同于headTitle('Title', 'APPEND')
  • headTitle().prepend('Title')(等同于headTitle('Title', 'PREPEND')
  • headTitle().set('New Title')(等同于headTitle('New Title', 'SET')
  • headTitle().getSeparator()
  • headTitle().setSeparator('~')
  • headTitle().getDefaultAttachOrder()
  • headTitle().setDefaultAttachOrder('APPEND')(也有'PREPEND''SET'
  • headTitle().getPattern()
  • headTitle().setPattern('_/°° %s °°_')(printf语法,此模式用于每个添加的部分)

在注册Twig函数时可以传递默认选项。

<?php

use vierbergenlars\Appendr;

// ...

$twig = new Twig_Environment($loader);

// Set default options in the constructor. (null skips an option)
$appendr = new Appendr('~', '_/°° %s °°\_', Appendr::APPEND);

// And register the Twig function
$twig->addFunction(new \Twig_SimpleFunction('fancyTitle', $appendr));

// Or set them on the instance later
$appendr->setSeparator('~');
$appendr->setPattern('_/°° %s °°\_');
$appendr->setDefaultAttachOrder(Appendr::APPEND);