- ベストアンサー
PHPで作るフレーム、どんな風に作ってます?
PHPやASPなどのサーバーサイドスクリプトで、全てのページにメニューなどを表示させて、フレームみたいなものを作るのがよくありますが、あれってどのように作ってますか? 僕はそれぞれのファイルに <?php function display_html(){ print <<<HJK ページの本文 HJK; } ?> として、フレームファイルindex.phpでdisplay_html()を呼び出してフレームを作成しているのですが、一般的にはどうなのかな、と思いまして。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私も #1 さんの方法を使う事が多いですね。 逆の方法もありますね。 ベースの物をindex.phpに作っておいて、 --------index.php---------- <html> <head>........... <body> ...........以上、共通部分 <?php if ( ereg("^[0-9]+$", $_GET["p"] ){ include ($_GET["p"].".inc.php"); } ?> ....以下共通部分 </body> </html> ------------------------------ みたいにしてindex.php?p=123 で123.inc.phpを呼び出したりする方法とか。 最近ではSmartyのようなテンプレートエンジンを使っている事も多いと思います。 http://gigazine.net/index.php?/news/comments/20060803_php_template_engine/ 参考まで。
その他の回答 (3)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
私はSmartyで共通テンプレートを作成しておいて、個別テンプレートから 共通テンプレートをインクルードしてます。 因みにワークフレームではなく、フレームワーク。 骨格になり、独自処理を埋め込むだけで、決まった動作の下に自動的に処理を呼び出してくれます。 私はEthnaとZendFrameworkをいじってます。 もしかしたらついでにMVCモデルについても勉強された方が良いかもしれませんね。
お礼
ご回答ありがとうございます。 MVCモデルというのもあるのですか。PHPは他の言語に比べると勉強することは少ないと思っていましたが、深くやろうとするとひたすら深いですね・・・。
- athanasius
- ベストアンサー率37% (361/964)
私の場合は、サンプルは無いですが、ワークフレームの機能で、フィルターで実現します。 mojavi とか、mapleとか、ethna とか。 あとは、テンプレートエンジンに渡して表示というところです。
お礼
ご回答ありがとうございます。 ワークフレームというものもあるのですか。検索してみたら、なかなか面白そうなので、いずれ勉強してみたいと思います。
- saintandre
- ベストアンサー率31% (194/607)
一般的と言われますと困りますが私の場合は以下のような感じです。 <html> <head> <title>ページタイトル</title> </head> <body> <?php include("menu.php"); ?> <!-- ページ本文 --> </body> </html> menu.php には共通のメニュー部分だけ記述してあり include 関数により呼び出された位置で表示されます。ページごとに違いを持たせたい場合は呼び出しの前に変数を定義しておけばその変数を menu.php 内部で使用できます。 この方法だと各ページの記述が少なくてすむので重宝してます。
お礼
ご回答ありがとうございます。 各ファイルでメニューを呼び出す手法ですね。確かに僕の手法だと、フレームファイルのプログラム記述量が多くて大変でした。
お礼
ご回答ありがとうございます。 そういえば、Smartyもありましたね。・・・ってこんなにテンプレートエンジンは種類があるんですか。すごいですね・・・。