だったら自分で作れば良いと思ったので・・・

PHPでWEBシステムを作る時に面倒なのがHTMLの出力。

一番単純なのはechoやprintを使って出力する方法。

短いプログラムやちょっと表示したいだけの場合はこれでも良いけどメンテナンス性が悪いし、""や''の閉じ忘れや\でエスケープが必要な文字もあったりで面倒。

次に思いつくのがヒアドキュメントで書く方法。
これならHTMLの部分とPHPの部分をざっくり分ける事が出来る。ただし、配列に入ってるデータをテーブルに出力したい・・・とかになると別でテーブルのHTMLを作って変数に居れたのをヒアドキュメント内で展開する必要がある。

で・・・PHPプログラムに慣れてきて、少し複雑なシステムとか組みだすとSmartyとかテンプレートシステムを使いたくなる。

PHPとHTMLが完全に分離出来るのだけど、ちょっとしたプログラムの場合は仰々しいのよね(--;)

その外にはSigmaTemplateなんてのもある。探せば他にもいろいろあるんだけど・・・。

 

blog.e-riverstyle.com

 

だけど・・・どれも覚えるのが面倒なんだよね(--;)ちょっと使うだけなら触りだけをみれば使えるんだろうけど、少し使わなかったら忘れちゃうから数か月後に不具合発見してなおそうとしたらテンプレートシステムの使い方から見直すハメに(--;)

そうだ!だったら自分で必要最小限のテンプレートシステムを作ってしまえ!って事でただただPHPからHTMLを読み込んで必要なデータを埋め込んで出力するだけのClassを作成した。

誰も見ないだろうけどGithubにでもあげようかと思ったら、既に以前あげてたw
そして、思った通り誰もアクセスしてないw

まぁ、Githubの使い方がよくわからんのでファイルがアップロードされてるだけだから誰も見向きもしないわなwww

github.com

 

 

使い方はいたって簡単

まずHTMLファイルをindex.htmlで作成

-----------------------------------------------------

<html>

<head><title>TEST</title></head>

<body>

<h2>テスト</h2>
 <!-- Begin TEST -->

    %MESSAGE%

 <!-- End TEST -->

  </body>
</html>

-----------------------------------------------------

 

次に同じディレクトリにindex.phpを以下のように作成

-----------------------------------------------------

<?php

  require_once "mkltpl.php";

  $TPL = new template();

  $TEMPLATE = 'index.html';

  $HTMLDATA = $TPL->set($TEMPLATE,'index');

  $HTML = $TPL->htmlset($HTMLDATA['index'],'','','0');

  $MSG = $TPL->htmlset($HTMLDATA['TEST'],'%MESSAGE%','Hello World !','0');

  $HTML = $TPL->htmlset($HTML,'%TEST%',$MSG,'1');
  $HTML = $TPL->htmlset($HTML,'%TEST%',$MSG,'1');

  $TPL->htmlout($HTML);

?>

-----------------------------------------------------

さて、この実行結果はブラウザ上に「Hello World !」が2回表示されたはず。

HTMLのデータは配列に入るので別のテンプレートに出力する事も可能です。

 

まぁ、作った本人だから簡単って思うだけで、他の人が見ると・・・う~ん、なんだこれは?って思うかも知れませんが・・・。

必要最小限を求めた結果、こうなりましたw

ソースを読めば何をしてるか、PHPを触れる人ならわかるくらい単純なClassですw

少しでも気になったらダウンロードしてみてちょwww

 

本を読まないと使えないくらいなら必要ないんだよなぁwww

Smarty 3を覚える本

Smarty 3を覚える本