SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

PHP、MySQL、JavaScriptによるセキュアなインターネットファイル共有システムの作成

Smartyを利用したテンプレートとロジックの分離

ダウンロード サンプルソース (14.8 KB)

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}&not_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プログラミングから切り離した実践例です。この例を活用することで、ユーザーが安心してファイルを共有し、タグとメタデータでファイルを分類できるインターネットファイル共有アプリケーションを作成することができます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Roberto Giorgetti(Roberto Giorgetti)

イタリアに拠点を置くITマネージャ、テクニカルライター。主にビジネス分野と工業分野でオープンソースの開発に従事。核工学の学位を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2638 2008/07/01 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー