overLIBとポップアップメニュー
PHPコードがサーバーサイドですべての処理を行わなければならない場合は、ワークフロープロセスが長くなりすぎるかもしれません。インタラクションを若干短縮するソリューションとしてJavaScriptのポップアップがありますが、JavaScriptを構成に挿入すると、許容しがたいエントロピーが生じて、ビジネスロジックとテンプレートロジックとの分離が著しく損なわれます。Smartyには、overLIBという非常に便利で強力なJavaScriptライブラリが埋め込まれています。SmartyのWebサイトによると、overLIBは「小さいポップアップ情報ボックスでWebサイトを拡張するために作成されたJavaScriptライブラリ」だそうです。
Smartyは、overLIBを非常に単純な{popup ... }という構成体と統合します。ファイル「inc.file_list.tpl」で、overLIBの実際の使用例を見ることができます。
{include file='files.pop.tpl' assign='filePop'}
...
<a href="{$smarty.server.PHP_SELF}?id={$file.id}¬_crypted=1"
{popup
trigger=onClick
width=360
sticky=true
caption='Action'
closeclick=true
text=$filePop
}
>{$file.filename}</a>
...
このコード例は、overLIBポップアップを1つの命令に接続する方法を示しています。ここに示したすべてのoverLIBパラメータを設定することで、ポップアップ用のHTMLコードを別のファイル「files.pop.tpl」に分離することができます。
PHPコードの改良
コーディング中に適切なインデントやスペーシング規則を設定することはなかなか大変です。この目的には、PEAR PHP_Beautifierが大いに役立ちます。インストール方法は次のとおりです。
pear install PHP_Beautifier
使用するときには、コマンドラインで次のコマンドを実行します。
php_beautifier [some_file].php --output new_file.php
出力結果の「new_file.php」ファイルは適切に整形され、読みやすさが大きく向上します。
さらに、PEARには、一連のコーディング標準も用意されています。たとえば、フィルタのメカニズムを使ってコードをフォーマットするには、次のように実行します。
php_beautifier --filters "Pear()" [some_file].php --output new_file.php
私はもともと、自分の専門外であるHTMLやCSSのコーディングを避けて、経験豊富なグラフィックデザイナにプレゼンテーションを簡単に任せられるようにするために、小さいインターネットファイル共有アプリケーションのプレゼンテーションをロジックから切り離す方法を探していました。そこで結果的にできあがったのが、データベース抽象化レイヤを使い、オープンソースのライブラリとフレームワークを取り入れてHTMLのデザインをPHPプログラミングから切り離した実践例です。この例を活用することで、ユーザーが安心してファイルを共有し、タグとメタデータでファイルを分類できるインターネットファイル共有アプリケーションを作成することができます。
