- ベストアンサー
コーディングはHTMLとPHPのどちらをベースにした方がいいでしょうか?
実質的には初めてのWebアプリケーション開発です。 さて、社内でも意見が割れているのですが、コーディングはHTMLとPHPのどちらをベースにしたら良いでしょうか? 【HTMLベース】 <input ~ value="<?=$hensu?>"> <? if($hensu==6){ $cnt=0; } ?> 【PHPベース】 print ("<input ~ value=\"$hensu\">"); if($hensu==6){ $cnt=0: } つまり、 「HTMLの中にPHPを埋め込んでいく」 「PHPの中にHTMLを埋め込んでいく」 開発効率やメンテナンス、あるいは世間の趨勢等、 どちらがいいのでしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
先の回答者が2人とも PHP ベースとおっしゃっているので 私は普段 HTML ベースなので、少し意見を。 で、Web アプリケーションの開発ですけど、 ビジネスロジック・インタフェース・デザインは 分離して開発するといいと思います。 したがって、出来る限り HTML と PHP は分離 する方がよいと思います。 例えば、簡単なカウンターを考えた場合、 ファイルから現在のカウンタを取得し、ロックかけて 1カウントアップして画面に表示する。 となりますが、 私が PHP を使って開発する場合、こんな感じに なります <?php require("CCounter.php"); cCount = new CCounter(); cCount.countUP(); ?> <html><head></head><body>.... <p><?php echo cCount.getCount(); ?> </body></html> つまり、処理のほとんどを PHP のクラスに 閉じ込めてしまいます。 つまり HTML を出力する PHP では極力 PHP が 登場しないようするべきだと思っています。 結果的に HTML ベースの形になります。 これだと、画面レイアウトの変更とかが 最悪デザイナーに依頼してもやってくれます。 PHP ベースだと Web デザイナーに画面を綺麗に してもらうのは、なかなか困難かと思うので。 --- というわけで、私は ■ 画面レイアウトの HTML ■ ロジックの PHP クラス に分離し、HTML に最小限の PHP を埋め込むことで Web アプリの開発をしています。 どうでしょう。一意見として聞いていただければ 幸いです。
その他の回答 (5)
- ibdij
- ベストアンサー率41% (5/12)
smartyは?
お礼
ご回答ありがとうございます。 恥ずかしながら初めて耳にしました。 参考URLをじっくり読ませて頂き、 目的に合うようなら選択肢の ひとつとしたいと思います。 (お礼が遅くなりまして申し訳ございませんでした)
- airgroove
- ベストアンサー率16% (1/6)
ケースバイケースかと。 ・デザインを外注する ・デザイン変更しやすい、というのを売りにする 以上の場合はHTMLベースで、 ・明らかに変数などをちまちま書き出さねばならない ・急いでいる(笑) 等の場合はPHPベースで書くとよいと思います。 横ですが、 >私は、一つのPHPで複数ページを表示 私はこれは結構好きですね。たしかに小さいアプリ限定ですが。 フリーCGIのようにコーディングの知識などない人が変更しないという前提で使うという用途で配布するような場合は努めてそうします。これもケースバイケースですか。 役に立たん中庸な回答申し訳ないです。
お礼
ご回答ありがとうございます。 「急いでいる」場合にPHPベースというのは、 私のようなPHP初心者には厳しいかもしれませんね。 「デザイン変更しやすい」という面から検討してみたい と思います。 (お礼が遅くなりまして申し訳ございませんでした)
- yaksa
- ベストアンサー率42% (84/197)
私も、#3と同じくHTMLベースというか、デザインとロジックは分離するほうがいいと思います。 イメージとしては、 PHPのクラスとかファンクションのみで、HTMLは出てこない logic.php を、 ほぼHTMLのindex.phpで、requireして使うみたいな感じです。#3と同じですね。 私は、一つのPHPで複数ページを表示するのは邪道だと思います。(小さなアプリだとついやってしまいますが。) まあ、こういうのは、いろんな人なりにポリシーというか好みというかのがあって、違う考えの人を説得するのは難しいので、チーム開発の場合は、私は黙って上の人とか多数派に従いますが。
お礼
ご回答ありがとうございます。 どちらがベースと考えるより、 PHPとHTMLを極力分離させる、 という方向で考えてみたいと思います。 確かに「好みの問題」になる可能性はありますね。 (お礼が遅くなりまして申し訳ございませんでした)
- tripod_r
- ベストアンサー率38% (5/13)
私の場合は複数ページを1プログラムで表示させていますのでPHPをベースにした方がやり易かったです。 フォルダ内にindex.phpを置き各ページを呼ぶ際は case文を用いて振り分けを行います。 ※.htaccessで下記文章を編集して追加する事が前提 DirectoryIndex index.php index.html index.htm index.cgi index.shtml 例)呼び出し:index.php?action=main(POSTでもGETでもOK) 振り分け:switch($_GET[action]){ case "main":main();break; case "image":image();break; case "music":music();break; default:start();break; } こうすると各ページが関数で呼び出せるのでフォルダ内がシンプルになりメンテナンス効率が良くなります。 あと、hedderやfooter等、各ページ統一の関数を作成しておけば全ページに統一性を持たせる事が出来ます。 - 以上 -
お礼
ご回答ありがとうございます。 なるほど。こういったやり方もあるのですね。 複数ページを1プログラムで表示する予定は ないのですが、この方法は他の場面で使えそうです。 (お礼が遅くなりまして申し訳ございませんでした)
サーバーに入れてあるPHPがZendなどでチューニングされているならPHPベースが良いと思います。 素の状態ならどちらもあまり変わらないと思います。 どれくらいの規模のWebアプリか存じませんが 比較的に処理速度を求めるならPHPベース サイトデザインを含めてメンテナンスのし易さで選ぶならHTMLでしょうか? あとは好みの問題だと思います、 一から構築されるのであればJSP+サーブレット+jetspeedが良いかも・・
お礼
ご回答ありがとうございます。 >サイトデザインを含めてメンテナンスのし易さで選ぶならHTML 画面数、データ量共に大した規模ではないので、 メンテナンスの容易性は魅力的です。 >JSP+サーブレット+jetspeed そういう選択肢もあるのですか。残念ながら開発環境は 変更できなそうです。 (お礼が遅くなりまして申し訳ございませんでした)
お礼
ご回答ありがとうございます。 > HTML を出力する PHP では極力 PHP が 登場しないようするべきだと思っています。 なるほど、参考になります。 現在、開発標準を決めている段階なのですが、 その方向でも検討してみたいと思います。 (お礼が遅くなりまして申し訳ございませんでした)