EC studio EC studio 技術ブログ

2008年10月23日投稿者:山本 正喜

Smarty3の開発がスタート!! – PHPニュース

PHPで最もメジャーなテンプレートエンジン、Smartyの
次期バージョンが開発スタートしたようです!

http://www.smarty.net/

まだアルファ版ですが、実質PHPのデファクト
スタンダードにまでなっているテンプレートエンジンの
バージョンアップですので、大期待です。

なお、PHP5専用の様です。(移行済んでますか? ;) )

バージョン3の基本コンセプトが記載されていたので、
簡単に訳してみます。

原文:
http://smarty-php.googlecode.com/svn/branches/Smarty3Alpha/README

Smarty3 基本コンセプト

・基本的な使い方は変わらない

PHP:
  1. require('Smarty.class.php');
  2. $smarty = new Smarty;
  3. $smarty->assign('foo','bar');
  4. $smarty->display('index.tpl');

おなじみのこれでOK。

・Smartyクラスを大幅にスリム化

大部分の機能はプラグイン化され、必要な機能は
必要な時に読み込まれるようになる。
(lazy-load)

・本物の字句解析エンジン(lexical tokenizer)の導入

これにより大幅に構文解析の精度が向上する。
テンプレート上での数式計算や、
再帰的な関数などが利用可能になる。

・Singletonパターンでの呼び出しに対応。

PHP:
  1. $smarty = Smarty::instance();

という呼び出し方が可能。
常に単一のインスタンスを取得できる。

(注)
Singletonパターンは詳しくはこちら(WikiPedia)

・すべてのプラグインはクラスへ

すべてSmarty_Internal_PluginBaseというクラスを継承。
いままで引数で、&$smartyと渡していたSmartyクラスは、
$this->smarty で使用可能になる。

・PHPテンプレートが使用可能に

Smarty構文を使わないPHPそのもののテンプレートに対応。

PHP:
  1. $smarty->display('php:mytemplate.tpl');

この様に書けば、tplをコンパイルせずPHPとして処理する。
tpl内では、

PHP:
  1. <?= $val ?>

などと書く

ただし、modifierはどうやって使うかなどは考え中。
いまのところ下記の様なアイデアがある。

PHP:
  1. //案1:modifierをロード&実行
  2. $this->modifier('truncate',$foo,$args);
  3.  
  4. //案2:modifierをPHPコード内でロードする
  5. $smarty->load->modifier('truncate','truncate');
  6. //テンプレート内で実行;
  7. truncate($foo,$args);

・文字列をテンプレート処理することが可能に

displayなどの引数に文字列を渡して処理ができる。

PHP:
  1. $smarty->display('string:This is my template, {$foo}!');

この様に書く。

・その他たくさん

たとえば
キャッシュファイル、コンパイルファイル、
コンフィグファイルのリソース管理や、
テンプレート/関数/変数ごとのキャッシュ、
テンプレートオブジェクトなど。

まだまだ考えてる途中なので、フォーラムを参照して
どんどんアイデアを送ってほしい。
http://www.phpinsider.com/smarty-forum/viewtopic.php?t=14168

今後の動向に注目するしかない!

まだアルファなので変わる可能性は多いにありますが、
これらの機能群だけを見ても楽しみですね。
特に高速化に期待です。

PHPテンプレートの機能は驚きましたが、
CakePHPやSymfonyなどメジャーどころの
フレームワークでは基本的にテンプレートエンジンを
使わずPHPそのものを使ってるので、
そのニーズでの使用を想定してるんでしょうね。

Smartyは2.6から開発がストップしていて、
PHP5に対応する気配がなかったので
自社でPHP5版を作ってしまうべきなのかと
やきもきしてたんですが、これで安心しました。

また逐次動向を報告したいと思います!


関連した記事:

■ 「日本でいちばん社員満足度が高い会社の非常識な働き方」

日本でいちばん社員満足度が高い会社の非常識な働き方

この記事へのコメント (2)

PHP5.2+Smarty2.6で開発していますが
問題なく使えますよ

投稿者: Eru | 2008/12/04 木曜日 14:32:43

>Eru さん

あ、はい、弊社でもPHP5.2 + Smarty2.6で開発しています。
Smarty2.6がPHP5で書かれていないのでStrictエラーが出ることや、
新しい機能開発が止まってしまっていることを気にしていました。

Smarty、とてもいいんですがもうちょっと速く&拡張性高くなってほしいです。
後継として派生したSmarty-LightやFlatFrogやSimplateも止まってしまいましたし。。。

投稿者: Masaki | 2008/12/04 木曜日 18:24:24
コメントを投稿

取材に関するお問い合わせ


(担当:大崎)

EC studio 採用情報の詳細はこちら

投稿者
全ECスタッフ導入の
おすすめソフトウェア
人気のエントリー
カテゴリー
最近のエントリー
アーカイブ

BLOG オフィシャルブログ

社長ブログ
EC studio社長ブログ

ブログを読む

技術ブログ
技術部のブログ

ブログを読む

デザインブログ
デザイン部のブログ

ブログを読む

Copyright© EC studio, All Rights Reserved.