-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
Feature
他のテンプレートエンジンを使えるようにする
Benefit & Scene
- より短くhtmlを記述できる言語(jade,slim)を利用したい
- Smartyという既存資産を使いたい(新しい言語を学ぶ必要がない)
Ideal code sample
// lib/app-require.php
require "cl/bs.php";
// ユーザー情報を取得
$resultSet = DB::query('SELECT `name`, `icon` FROM `users` WHERE `id` = ?', [Session::get('user_id')]);
$user = $resultSet->fetch();
// ビューに設定
View::set([
'user_name' => $user['user.name'],
'user_icon' => $user['user.icon']
]);
``
`
``` php
// index.php
require 'lib/app-require.php';
// $news にお知らせ情報を取得
View::set('news', $news)->output('index.jade');//- index.jade
doctype html
html
head
title #{user_name} | MyPage
body
#user-info
img.userIcon(src=user_icon)
span.userName= user_namePublic API Spec
class CodeLapse\View
View関連クラスの窓口となるクラス
- set($name : String|Array, $value = null) : void
Viewに変数を設定します。
第1引数に割り当て名、第2引数に割り当てる値を指定します。
第1引数が配列の場合、添字を第1引数、値を第2引数としてすべての要素に対してsetメソッドを実行します。
設定された値はエスケープされます。 - setRaw($name: String|Array, $value = null) :void
Viewに変数を設定します。
* 設定された値はエスケープされません。* - get($name : String|Array, $default = null) : mixed
- out($filename : String) : String
指定されたテンプレートをレンダリングし、表示します。
ファイル名の拡張子によって使用するエンジンを切り替えます。- .jade - jade.php
- .tpl - smarty
- fetch($filename) : void
指定されたテンプレートをレンダリングし、HTMLを返します。 - setRoot($path) : void
テンプレートの保存先パスを指定します。
setRootによって値が設定されない場合はview.templateDir設定を利用します。 - getDriver($extension: String) : CodeLapse\View\Driver
指定された拡張子に対応するドライバ(Driverクラスの実装クラスインスタンス)を取得します。
interface CodeLapse\View\Driver
テンプレートエンジンの初期化などを行うクラスのインターフェース
- __construct()
テンプレートエンジンを初期化します。 - getNativeDriver() : Object
テンプレートエンジンのハンドラを取得します。
たとえば、Smartyの場合は Smartyオブジェクト返します。 - render($filePath, $variables) : String
指定されたファイルをレンダリングして、文字列として返します。
第1引数にはテンプレートファイルへのフルパス、
第2引数には割り当てられた変数が渡されます。
class CodeLapse\View\Driver\Jade (implements CodeLapse\View\Driver)
class CodeLapse\View\Driver\Smarty (implements CodeLapse\View\Driver)
Reactions are currently unavailable