【Tplcutter】進捗報告(その2)

順調に開発が進んでいる(と思う)Tplcutterですが、ベースになる部分が出来てきました。
とりあえずディレクトリをサーチし、処理に応じてファイルを引っ張ったりコピーしたりする部分は実装できました。見た目だけは何となく動いています。

ファイルからデータが取れるようになったので、次の課題はパース部分ですが、とりあえず抜き出す部分は実験コードで動くことを確認していますので問題ないと思いますが、心配なのは、今回の大幅な仕様変更の一つである「タイプ」の導入部分です。

今までは、CakePHP用、もしくはPHP用の2通り(厳密に言うとSmartyView向けオプションを付けると×2)の処理が出来ましたが、一度指定されると同アプリ内はその処理で固定されてしまいました。逆に言うと、app内は同じ処理をしなければならないため、例えばノーマルビューとSmartyビューを混在できませんでした。
そこで新バージョンでは、ブロック内でそのテンプレートの「タイプ」を指定することで、異なった処理が出来るようになりました。
さらに、この「タイプ」は、標準で用意されているものを利用するだけでなく、自分でもカスタマイズたものを登録して、呼び出すことが出来るようになっています。今後新しいテンプレートシステムが出来た場合でも、自分でカスタムタイプを作って登録すれば、Tplcutterのバージョンアップを待ったりソースの改造をすることなく対応することが出来るのです。

タイプの中には「カテゴリ」という概念があり、さらに処理を分別することが出来ます。例えばCakePHPで言えば、通常のビューの他に「element」があり、処理内容は若干違います(格納場所が異なる)がベースはほぼ同じものです。この「若干」の部分をカテゴリで吸収できます。

ちょっと突っ込んだ内容になってしまいましたが、簡単に言えば「簡単な設定でフレキシブルにテンプレートが作成できる」というわけです。CakePHP用をはじめ、一通りタイプは用意するつもりですのでカスタムタイプを作る機会は無いかもしれませんが、もしそうなっても安心してお使いいただけると思います。

仕組み自体はそれほど難しいものではないのですが、心配しているのは「どんなテンプレートシステムが来ても大丈夫か?」という点です。展開先ディレクトリ等のカスタマイズは大丈夫だと思うのですが、例えばパスの変更だとか、そのテンプレートシステム固有の処理だとかがちゃんと実現できるかが心配です。まあこの辺はじっくりいきたいと思います。


コメントは受け付けていません。