• ベストアンサー

コーディングは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を埋め込んでいく」  開発効率やメンテナンス、あるいは世間の趨勢等、 どちらがいいのでしょうか?

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

  • ベストアンサー
  • togino
  • ベストアンサー率75% (97/129)
回答No.3

先の回答者が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 アプリの開発をしています。 どうでしょう。一意見として聞いていただければ 幸いです。

mogmogtae
質問者

お礼

ご回答ありがとうございます。 > HTML を出力する PHP では極力 PHP が 登場しないようするべきだと思っています。  なるほど、参考になります。  現在、開発標準を決めている段階なのですが、 その方向でも検討してみたいと思います。 (お礼が遅くなりまして申し訳ございませんでした)

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • ibdij
  • ベストアンサー率41% (5/12)
回答No.6

smartyは?

参考URL:
http://sunset.freespace.jp/smarty/SmartyManual_2-6-2J_html/
mogmogtae
質問者

お礼

ご回答ありがとうございます。 恥ずかしながら初めて耳にしました。 参考URLをじっくり読ませて頂き、 目的に合うようなら選択肢の ひとつとしたいと思います。 (お礼が遅くなりまして申し訳ございませんでした)

全文を見る
すると、全ての回答が全文表示されます。
回答No.5

ケースバイケースかと。 ・デザインを外注する ・デザイン変更しやすい、というのを売りにする 以上の場合はHTMLベースで、 ・明らかに変数などをちまちま書き出さねばならない ・急いでいる(笑) 等の場合はPHPベースで書くとよいと思います。 横ですが、 >私は、一つのPHPで複数ページを表示 私はこれは結構好きですね。たしかに小さいアプリ限定ですが。 フリーCGIのようにコーディングの知識などない人が変更しないという前提で使うという用途で配布するような場合は努めてそうします。これもケースバイケースですか。 役に立たん中庸な回答申し訳ないです。

mogmogtae
質問者

お礼

ご回答ありがとうございます。 「急いでいる」場合にPHPベースというのは、 私のようなPHP初心者には厳しいかもしれませんね。 「デザイン変更しやすい」という面から検討してみたい と思います。 (お礼が遅くなりまして申し訳ございませんでした)

全文を見る
すると、全ての回答が全文表示されます。
  • yaksa
  • ベストアンサー率42% (84/197)
回答No.4

私も、#3と同じくHTMLベースというか、デザインとロジックは分離するほうがいいと思います。 イメージとしては、 PHPのクラスとかファンクションのみで、HTMLは出てこない logic.php を、 ほぼHTMLのindex.phpで、requireして使うみたいな感じです。#3と同じですね。 私は、一つのPHPで複数ページを表示するのは邪道だと思います。(小さなアプリだとついやってしまいますが。) まあ、こういうのは、いろんな人なりにポリシーというか好みというかのがあって、違う考えの人を説得するのは難しいので、チーム開発の場合は、私は黙って上の人とか多数派に従いますが。

mogmogtae
質問者

お礼

ご回答ありがとうございます。 どちらがベースと考えるより、 PHPとHTMLを極力分離させる、 という方向で考えてみたいと思います。 確かに「好みの問題」になる可能性はありますね。 (お礼が遅くなりまして申し訳ございませんでした)

全文を見る
すると、全ての回答が全文表示されます。
  • tripod_r
  • ベストアンサー率38% (5/13)
回答No.2

私の場合は複数ページを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等、各ページ統一の関数を作成しておけば全ページに統一性を持たせる事が出来ます。 - 以上 -

mogmogtae
質問者

お礼

ご回答ありがとうございます。  なるほど。こういったやり方もあるのですね。  複数ページを1プログラムで表示する予定は ないのですが、この方法は他の場面で使えそうです。 (お礼が遅くなりまして申し訳ございませんでした)

全文を見る
すると、全ての回答が全文表示されます。
noname#38849
noname#38849
回答No.1

サーバーに入れてあるPHPがZendなどでチューニングされているならPHPベースが良いと思います。 素の状態ならどちらもあまり変わらないと思います。 どれくらいの規模のWebアプリか存じませんが 比較的に処理速度を求めるならPHPベース サイトデザインを含めてメンテナンスのし易さで選ぶならHTMLでしょうか? あとは好みの問題だと思います、 一から構築されるのであればJSP+サーブレット+jetspeedが良いかも・・

mogmogtae
質問者

お礼

ご回答ありがとうございます。 >サイトデザインを含めてメンテナンスのし易さで選ぶならHTML  画面数、データ量共に大した規模ではないので、 メンテナンスの容易性は魅力的です。 >JSP+サーブレット+jetspeed    そういう選択肢もあるのですか。残念ながら開発環境は 変更できなそうです。 (お礼が遅くなりまして申し訳ございませんでした)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHP 配列について

    phpとDBでシステムを作っています DBをよみながら配列と比較しています。 ループ中の配列で2回目以降がどうしても配列の値が入りません $Baitai[$cnt]で1回目は配列の値が来るのですが 2回目以降が一部の文字bしか入りません ご教授お願いします。 while($arr_record = mysql_fetch_assoc($rs)) { foreach($arr_record as $field_name => $field_value) {            if($field_value<>"") { echo $Baitai[$cnt]; $Baitai="Baitai".$k; if($Baitai[$cnt]==$field_value) { ?>       <input type="checkbox" value="<?php echo $field_value;?>" Name="<?php echo $Baitai;?>" checked><?php echo $field_value;?> <?php } else { ?> <input type="checkbox" value="<?php echo $field_value;?>" Name="<?php echo $Baitai; ?>"><?php echo $field_value;?> <?php } } $cnt=$cnt+1;             $k=$k+1; } }

    • ベストアンサー
    • PHP
  • PHPカレンダーについて

    今カレンダーを作成している段階です。 http://w1.nirai.ne.jp/freeze/main/file11.html ↑このサイトのプログラムを参考にしているんですが、 <html> <head> <title>カレンダー</title> </head> <body> <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="POST"> <select name="year"> <?php $cnt = 1970; while($cnt<2038){   if($cnt==date(Y)){   echo "<option value='$cnt' selected>$cnt</option>";   } else {  echo "<option value='$cnt'>$cnt</option>";  } $cnt++; } ?> </select> <select name="month"> <?php $cnt=1; while($cnt<13){   if($cnt == date(n)){   echo "<option value='$cnt' selected>$cnt</option>";   } else {   echo "<option value='$cnt'>$cnt</option>";   } $cnt++; } ?> </select> <input type="submit" value="作成!"> </form> </body> </html> このPHPプログラムを実行してもエラーが消えません。 どこが間違っているのかどなたか教えてください。

    • 締切済み
    • PHP
  • PHPでJavascriptの引数の扱い方

    はじめまして。宜しくお願い致します。 環境:Linux(Redhat 9), apache2, PHP4.3.6 [やりたいこと] 下記↓ソース内容↓より、input=button と input=text が幾つかある。 個々のボタンが押されたら、PHPにて"個々"の内部処理を行う。 内部処理終了後は、個々のテキストにインクリメントした値が画面表示される。 HTML+Javascript にて、カウンター部分は一応完成しています。 ↓ソース内容↓ <html> <head> <script language="JavaScript"> <!-- function ccc(obj0) { cnt = obj0.value; cnt++; obj0.value = cnt; } // --> </script> </head> <body> <form name="ose"> <input type="text" name="view0" readonly size=5 maxlength=3> <input type="button" value="押せ0" onClick="ccc(view0)"><br> <input type="text" name="view1" readonly size=5 maxlength=3> <input type="button" value="押せ1" onClick="ccc(view1)"> </form> </body> </html> コレをPHPに書き換えると、上手くいきません。 ↓PHPに書き換えた場合↓ <script type="text/javascript"> <!-- function ccc($obj0) { cnt = $obj0.value; cnt++; $obj0.value = cnt; } // --> </script> 引数に付いている "$"マークをJavascript側で認識しないのだろう、と考えています。 出来れば、PHPで単体の関数として使用したい為、模索中です。 ※現在は、別の関数の中に上記の『↓HTML+Javascriptの場合↓』を無理矢理入れて使用しています。(別の関数:HTMLをPHPファイルに書き込む) 別の関数内に入れてても問題は無しです。 但、上記のJavascriptを使用しないソース達にも書き込んでしまうので、ちょとやだなーと。 いい方法があったら教えて下さい。

    • ベストアンサー
    • PHP
  • PHP

    HTML文ですが、これをPHPでループで回して無駄なコーディングを直したい。 どうしたらいいですか? <select name="nhour"> <option value="0" <?php if($nhour == '0') echo"selected"; ?>>0</option> <option value="1" <?php if($nhour == '1') echo"selected"; ?>>1</option> <option value="2" <?php if($nhour == '2') echo"selected"; ?>>2</option> <option value="3" <?php if($nhour == '3') echo"selected"; ?>>3</option> <option value="4" <?php if($nhour == '4') echo"selected"; ?>>4</option> <option value="5" <?php if($nhour == '5') echo"selected"; ?>>5</option> </select>

    • ベストアンサー
    • PHP
  • PHPのコーディングルール?

    お世話になります。 只今、PHP5で開発しているのですが 皆様のご意見を聞きたいと思いまして、質問させていただきます。 以下の場合、どちらでコーディングしますか? また具体的な理由などありましたら、ご教授頂けますでしょうか。 (1)if(!isset($hoge)){ (2)if(isset($hoge) == false){ 以下の場合、どちらでコーディングしますか? また具体的な理由などありましたら、ご教授頂けますでしょうか。 (3)require_once(/jp/ne/goo/Hoge.php) ・・・絶対パスでrequireする。 (4)require_once(goo/Hoge.php)  ・・・include_pathを通すなどして、相対パスで記述する。 基本的なことかもしれませんが、ご教授よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpのソースについて

    このソースはHTMLだと思いますが、phpファイルのときは、 ifを<?php?>で指定しなければいけませんよね? if $click[cnt]<>""} {$click[cnt]} <a href="click.php?num=10" utn>{$click[cnt]}</a> {/if} こちらは、{$click[cnt]}をクリックをしたらそのリンクを消えるようにする複雑な設定です。 ただ、これは、HTMLとphpの設定が一緒になっている可能性が高く、思うように動きませんが、なぜですか?スクリプト等の」違いですか?設定ミスですか?

    • 締切済み
    • PHP
  • PHP

    PHPで <p>曜日</p> <p> <input type="checkbox" name="youbi[]" value="1" <?php if(strstr($result[4],'1')) echo"checked"; ?>>月 <input type="checkbox" name="youbi[]" value="2" <?php if(strstr($result[4], '2')) echo"checked"; ?>>火 <input type="checkbox" name="youbi[]" value="3" <?php if(strstr($result[4],'3')) echo"checked"; ?>>水 <input type="checkbox" name="youbi[]" value="4" <?php if(strstr($result[4],'4')) echo"checked"; ?>>木 <input type="checkbox" name="youbi[]" value="5" <?php if(strstr($result[4],'5')) echo"checked"; ?>>金 <input type="checkbox" name="youbi[]" value="6" <?php if(strstr($result[4],'6')) echo"checked"; ?>>土 <input type="checkbox" name="youbi[]" value="0" <?php if(strstr($result[4],'0')) echo"checked"; ?>>日 </p> <p>時間</p> <p> <input type="submit" value="設定" /> とやると日曜日を選択してsubmitするとチェックが外れます。なぜでしょうか?

    • ベストアンサー
    • PHP
  • 問題部分がJavascriptかPHPか分かりませんが....

    以下のようなHTMLを記述しました。 私の希望するべき動作は、"click"ボタンを押すたびに時間表記が切り替わると言うものです。 条件として、時間の取得はphp側で行う。 ページのリロード,リダイレクトなどは行わない main.HTML <head> <script type="text/javascript" id="test" src="./time1.php"></script> <script Language="JavaScript"><!-- cnt = 0; function click_key(){ if(cnt == 0){ test.src = "./time3.php"; cnt = 1; }else{ test.src = "./time1.php"; cnt = 0; } document.smp.set_val.value = get_time(); } // --></script> </head> <body> <form name=smp> <input type=text name=set_val value="" size=50><br> <input type=button value=click onclick="click_key()"> </form> </body> testX.php function get_time(){ value_time = "<? echo date("H:i:s"); ?>";   中略 return value_time; } test1.php test3.php にはそれぞれ上記のget_time()を含むコード記述がされています。 現状では、表示自体は切り替わりますがtest1.phpとtest3.phpが最初に読み込まれる時のみ動作するだけで、 以降は時間が更新されません。(テンポラリに残っていてそれが表示されている感じ?) これをリアルに動作できる方法はあるのでしょうか? それとも、こんな条件では実現不可能?

    • 締切済み
    • PHP
  • HTMLとPHPのデータのやり取りで問題発生

    HTMLサイドで<form> のsubmit ボタンで、あるデータをPHPスクリプトに送った後、PHPサイドの画面(特に何も表示はしないので真っ白)になったまま、HTMLの画面に戻ってくれません。 PHPサイドではHTML側から送ったデータに基づいて、単純な2進2ビットのデータファイルを作るだけで,この部分はちゃんと働いています。HTMLページは表示されたまま、PHPにはバックグラウンドで仕事をしてもらいたいのですが、やり方がよくわかりません。 お知恵を貸していただける方、よろしく教えてください。お願いします。 自分が使っているテストプログラムを載せておきます。 HTMLサイド <table border="1"> <tr> <td> <form method="get" action="attenuate.php"> <input type="submit" value="1:1"> <input type="hidden" value="01" name="select"> </form> </td> <td> <form method="get" action="attenuate.php"> <input type="submit" value="2:1"> <input type="hidden" value="10" name="select"> </form> </td> <td> <form method="get" action="attenuate.php"> <input type="submit" value="5:1"> <input type="hidden" value="11" name="select"> </form> </td> <td> <form method="get" action="attenuate.php"> <input type="submit" value="Amplify"> <input type="hidden" value="00" name="select"> </form> </td> </tr> </table> PHPサイド  file: attenuate.php <html> <head></head> <body> <?php $fp=fopen("attenuation.txt","w"); switch($_GET['select']) { case '00': fwrite($fp,"00");break; case '00': fwrite($fp,"01");break; case '00': fwrite($fp,"10");break; case '00': fwrite($fp,"11");break; } fclose($fp); ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPで求めた変数をHTMLで使う方法

    HTMLのformタグで与えた引数を元に、ある値をPHPで求めた後、その求めた変数をHTMLに戻って使う方法をご教授下さい。 例えば、 index.html ↓↓↓ <form action="submit.php" method="post"> <input type="text" name="xxxxx"> <input type="text" name="yyyyy"> <input tyoe="submit" value="実行"> </form> <textarea name="answer"> 実行後ここに、下のPHPで求めた$zzzzzを表示したい。 </textarea> 上のHTMLでxxxxxとyyyyyを入力して実行ボタンを押します。 そしてPHP側は、 submit.php  ↓↓↓ $zzzzz = $_POST["xxxxx"] . "は、" . $_POST["yyyyy"] . "です。"; このように求めた$zzzzzを上のHTMLに戻って表示したいのですが、しばらく調べてみても見つかりませんでした。 どなたかご教授下さい、お願いします。