PHP を HTML と一緒にコーディングする場合、常に混乱し、見るのが非常に苦痛に思えます。構造が分かりにくい。
適切な構造で HTML を使用して PHP をコーディングする方法について誰か教えてもらえますか?
Model-View-Controller (MVC) など、この問題に役立つ方法論があります。MVC は、データ層、ロジック、プレゼンテーション (UI) 層を分離します。この場合、CodeIgniter などのフレームワークが役立ちます。既存のフレームワークを使用しない場合でも、データ モデルをビジネス ロジックから分離し、次に UI オブジェクトから分離するのは比較的簡単です。
編集: ショッピング カート ページがあるとします。cart.php という「ビュー」ファイルを作成し、他の PHP ファイル (「コントローラー」) から情報を送信して、次のようにすることができます。
<div id = 'special_price'>
<?php $result = mysql_query("SELECT price FROM pricelists");
$row = mysql_fetch_assoc($result);
echo $row["price"];
?>
</div>
あなたはこれを行うことができます:
<div id = 'special_price'><?= $price ?></div>
このシナリオでは、ページを表示する前に、すべてのロジックとデータ アクセスが処理されます。
@ ajacian81は正しいですが、追加のオプションがあります。彼が言及した方法は、MVCフレームワークに従ってすべてのコードを記述することです。MVCアーキテクチャは、複雑なWebアプリケーションの関心事を分離するための優れた方法です。MVCは、アプリケーションロジック、データベースロジック、およびビューを3つの別々の場所に分割します。ただし、混合されたphp+htmlコードベースをMVCフレームワークにリファクタリングするのは時間がかかる場合があります。コードベースを完全にリファクタリングせずにhtmlからphpを削除することに興味がある場合は、TwigやSmartyなどのテンプレートエンジンの使用を検討してください。
テンプレートエンジンを使用する場合は、phpとsqlを1つの場所に分け、htmlテンプレートを別の場所に分けることができます。MVCフレームワークを使用する場合は、php、sql、およびhtmlを3つの異なる場所に分割する必要があります。優先順位が本質的に短期的なものである場合は、テンプレートエンジンを使用してください。優先順位が長期的なものである場合は、コードをMVCフレームワークにリファクタリングすることを検討してください。
PHP は非常に高度になっているため、フレームワークの信念をカスタム ビルドに使用しても、実際には何も得られません。スクリプトと、html および php のすべてのセクションの最初と最後をコメントアウトすると、完全なソーシャル Web サイトまたはソーシャル ビジネス ポータルを実行するのに必要なファイルの数がどれだけ少なくて済むかに驚かれることでしょう。config.php、すべてのセッションと Cookie を保存する ini.php、および db_connect.php という 3 つの主要なファイルのみを使用します。すべてのページ ビューは、ページを更新せずに Ajax によって処理され、すべてのフォームは、ページを更新せずに Ajax を使用するためにこれらのビューの一部に取り込まれます。私はすべての URL リクエストに Ajax をほとんど使用してきました。これにより、かさばるフレームワークの必要性がなくなりました。