2017 © Pedro Peláez
 

library template-renderer

renderer class for some template systems

image

volcanus/template-renderer

renderer class for some template systems

  • Wednesday, June 20, 2018
  • by k-holy
  • Repository
  • 1 Watchers
  • 0 Stars
  • 278 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 10 Versions
  • 1 % Grown

The README.md

Volcanus_TemplateRenderer

Latest Stable Version Continuous Integration, (*1)

各種テンプレートエンジンを共通のインタフェースで利用するためのPHPクラスライブラリです。, (*2)

対応環境

  • PHP 8.1以降
  • Smarty(オプション)
  • Latte (オプション)
  • PHPTAL(オプション)

バージョンの下限は明確ではありません。ごめんなさい。, (*3)

使い方

Smarty

<?php
include './vendor/autoload.php';

use Volcanus\TemplateRenderer\Renderer;
use Volcanus\TemplateRenderer\Adapter\SmartyAdapter;

// Smarty
$renderer = new Renderer(new SmartyAdapter(new \Smarty(), [
    'template_dir' => __DIR__,
    'compile_dir'  => sys_get_temp_dir(),
]));

$renderer->assign('suffix', '様');

file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'hello.tpl', 'Hello {$name}{$suffix} !!');

$renderer->render('hello.tpl', ['name' => 'Smarty']); // Hello Smarty様 !!

unlink(__DIR__ . DIRECTORY_SEPARATOR . 'hello.tpl');

Latte

<?php
include './vendor/autoload.php';

use Volcanus\TemplateRenderer\Renderer;
use Volcanus\TemplateRenderer\Adapter\LatteAdapter;

// Latte
$renderer = new Renderer(new LatteAdapter(new \Latte\Engine(), [
    'baseDir' => __DIR__,
    'tempDirectory' => sys_get_temp_dir(),
]));

$renderer->assign('suffix', '様');

file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'hello.latte', 'Hello {$name}{$suffix} !!');

$renderer->render('hello.latte',['name' => 'Latte']); // Hello Latte様 !!

unlink(__DIR__ . DIRECTORY_SEPARATOR . 'hello.latte');

PHPTAL

<?php
include './vendor/autoload.php';

use Volcanus\TemplateRenderer\Renderer;
use Volcanus\TemplateRenderer\Adapter\PhpTalAdapter;

// PHPTAL
$renderer = new Renderer(new PhpTalAdapter(new \PHPTAL(), [
    'templateRepository' => __DIR__,
    'phpCodeDestination' => sys_get_temp_dir(),
]));

$renderer->assign('suffix', '様');

file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'hello.tal', '<tal:block>Hello <span tal:replace="name">Anonymous</span><span tal:replace="suffix">氏</span> !!</tal:block>');

$renderer->render('hello.tal', ['name' => 'PHPTAL']); // Hello PHPTAL様 !!

unlink(__DIR__ . DIRECTORY_SEPARATOR . 'hello.tal');

アダプタ別の注意点

基本的に、複雑な設定やプラグインのような独自機構へのアクセスは提供していません。, (*4)

Smarty

以下の設定値に対応しています。, (*5)

  • template_dir, config_dir, plugins_dir, compile_dir, cache_dir, left_delimiter, right_delimiter, default_modifiers, caching, force_compile, use_sub_dirs, escape_html

独自の設定値 charset により、テンプレートファイルのエンコーディングを指定できます。 (静的プロパティ Smarty::$_CHARSET を書き換えます), (*6)

独自の設定値 defaultLayout により、デフォルトの継承元テンプレートファイルを指定できます。, (*7)

この設定は、出力メソッドで "extends:" や "string:" といったテンプレートリソースが指定されていない場合のみ動作します。, (*8)

Latte

以下の設定値に対応しています。, (*9)

  • tempDirectory, autoRefresh, strictTypes

設定値 baseDir は、 \Volcanus\TemplateRenderer\Renderer::render() および \Volcanus\TemplateRenderer\Renderer::fetch() 実行時に生成される \Latte\Loaders\FileLoader のコンストラクタ引数 $baseDir に利用されます。, (*10)

PHPTAL

以下の設定値に対応しています。, (*11)

  • templateRepository, phpCodeDestination, encoding, phpCodeExtension, outputMode, cacheLifetime, forceReparse

応用編

こんな感じでテンプレートエンジンを切り替えながら Renderer::assign() で出力結果を溜めつつ、最後に結合して出力することも可能です。, (*12)

<?php
include './vendor/autoload.php';

use Volcanus\TemplateRenderer\Renderer;
use Volcanus\TemplateRenderer\Adapter\SmartyAdapter;
use Volcanus\TemplateRenderer\Adapter\LatteAdapter;
use Volcanus\TemplateRenderer\Adapter\PhpTalAdapter;

// Smarty
$renderer = new Renderer(new SmartyAdapter(new \Smarty(), [
    'template_dir' => __DIR__,
    'compile_dir'  => sys_get_temp_dir(),
]));

$renderer->assign('suffix', '様');

file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'hello.tpl', 'Hello {$name}{$suffix} !!');

$renderer->assign('smarty', $renderer->fetch('hello.tpl', ['name' => 'Smarty'])); // Hello Smarty様 !!

unlink(__DIR__ . DIRECTORY_SEPARATOR . 'hello.tpl');

// Latte
$renderer->setAdapter(new LatteAdapter(new \Latte\Engine(), [
    'baseDir' => __DIR__,
    'tempDirectory' => sys_get_temp_dir(),
]));

file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'hello.latte', 'Hello {$name}{$suffix} !!');

$renderer->assign('latte', $renderer->fetch('hello.latte', ['name' => 'Latte'])); // Hello Latte様 !!

unlink(__DIR__ . DIRECTORY_SEPARATOR . 'hello.latte');

// PHPTAL
$renderer->setAdapter(new PhpTalAdapter(new \PHPTAL(),[
    'templateRepository' => __DIR__,
    'phpCodeDestination' => sys_get_temp_dir(),
]));

file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . 'outline.tal', <<<'TEMPLATE'
<html>
<head>
<title tal:content="title">タイトル</title>
</head>
<body>


Smartyコンテンツ
Latteコンテンツ
Hello Anonymous !!
</body> </html> TEMPLATE ); $renderer->render('outline.tal', [ 'title' => 'PHPTAL + Smarty + Latte', 'name' => 'PHPTAL', ]); unlink(__DIR__ . DIRECTORY_SEPARATOR . 'outline.tal');

The Versions

20/06 2018
20/06 2018
27/09 2017

1.0.0

1.0.0.0 https://github.com/k-holy/volcanus-template-renderer

renderer class for some template systems

  Sources   Download

MIT

The Requires

  • php ^5.6||^7.0

 

The Development Requires

by Avatar k-holy

25/09 2017

0.5.0

0.5.0.0 https://github.com/k-holy/volcanus-template-renderer

renderer class for some template systems

  Sources   Download

MIT

The Requires

  • php >=5.3.9

 

The Development Requires

by Avatar k-holy

17/04 2015

0.2.4

0.2.4.0 https://github.com/k-holy/volcanus-template-renderer

renderer class for some template systems

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

The Development Requires

by Avatar k-holy

26/03 2015

0.2.3

0.2.3.0 https://github.com/k-holy/volcanus-template-renderer

renderer class for some template systems

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

The Development Requires

by Avatar k-holy

06/08 2014

0.2.2

0.2.2.0 https://github.com/k-holy/volcanus-template-renderer

renderer class for some template systems

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

The Development Requires

by Avatar k-holy

25/11 2013

0.2.1

0.2.1.0 https://github.com/k-holy/volcanus-template-renderer

renderer class for some template systems

  Sources   Download

MIT

The Requires

  • php >=5.3.3

 

The Development Requires

by Avatar k-holy

21/10 2013