• ベストアンサー

コーディングの考え方

過去に、似たような質問もあったのですが、あえて再度質問させていただきたいと思います。ご容赦ください。 現状、私は試行錯誤の結果、下記のようなコードを書いていますが、もっといいやり方はないでしょうか? いっそ、フレームワークかな という気もするのですが。。。 皆さんはどうのようにコードを書かれているのでしょうか? いろんな方法があり、一長一短があると思いますが、いろいろとご意見を聞かせてください。 ---------------------------------------------------------- 現状のコード ロジック部では、表示させたい文字列を、いくつかの変数に代入する。 その変数をhtml表示用のクラスに渡し、体裁を整えて、htmlを書出す。 ※サイトはSNS程度の規模です。 <?php //ロジック $body_title = ...; $body_main = ...; //表示 $template = new template($body_title, $body_main); echo $template->getHtml; ?> ----------------------------------------------------------

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

デザイナーとプログラマが分業するなら、テンプレートエンジンが良いでしょうね。 世界のテンプレートエンジントップ25 http://gigazine.net/index.php?/news/comments/20060803_php_template_engine/ 一般的にはSmartyでしょうか。 PHP・Perl各種テンプレートエンジンの処理速度比較 http://www.ryuichi.jp/computer_memo/etc/template_time_match/ こちらを見ると、大規模サイトになるとテンプレートエンジンはさすがに遅くなる可能性がありますね。標準関数が一番のようです(当たり前)。 Smarty と patTemplate の比較 http://www.gadgety.net/shin/tips/unix/php-tmpl.html こちらを見るとあまり違いは無いようですが。 プログラマとデザイナが同一なら、ヘッダー、フッター、JavaScript等の共通部分をインクルードファイルにして、CSSで主にデザインしてしまう、というのも手です(私はこの方法)。

参考URL:
http://taketan.mydns.jp/
xyz_1990
質問者

お礼

ご回答ありがとうございます。 2つ目のリンク先の結論では、PHPならテンプレートは必要ないという風に書かれていますね。 私も、一人でサイトを作っているので、やはりPHPのみがよさそうですね。あとは、共通部分を、クラスにまとめてインクルードするのがベストかな~。 という気がしてきました。速度も気になりますし。

その他の回答 (1)

回答No.1

テンプレートエンジンを利用されてみてはいかがでしょうか? http://www.gadgety.net/shin/tips/unix/php-tmpl.html 私はSmartyしか利用したことがないので、Smartyについて。 <?php require_once('Smarty/Smarty.class.php'); // Smartyのインクルード $smarty = new Smarty; // オブジェクトの作成 $smarty->template_dir = '/path/to/templates/'; // テンプレートがあるフォルダの設定 $smarty->compile_dir = '/path/to/templates_c/'; // テンポラリフォルダの設定 $smarty->config_dir = '/path/to/configs/'; // 設定ファイルフォルダの設定 // ロジック $body_title = ...; $body_main = ...; // テンプレート上の変数への、関連づけ $smarty->assign('title', $body_title); $smarty->assign('main', $body_main); // 表示 $smarty->display('template_1.tpl'); # $html = $smarty->fetch('template_1.tpl'); # echo $html; // displayの代りに、コレでも表示可能。 ?> こんな感じで、テンプレートファイル /path/to/templates/template_1.tpl に変数を渡す。 テンプレートは、こんな感じですかね。 <html> <head> <title>{$title}</title> </head> <body> {$main} </body> 最後に、Smartyのマニュアルは参考URLにて。

参考URL:
http://sunset.freespace.jp/Smarty/SmartyManual_2-6-3J_html/index.html
xyz_1990
質問者

お礼

ご回答ありがとうございます。 やっぱり、smartyでしょうか。 いつかは、導入しようと思っているのですが、学習の労力以上の効率化が図れるのか疑問で、なかなか踏み切れないでいます。 できれば、使われたご感想を教えてください。

関連するQ&A

専門家に質問してみよう