インターネット技術の継続的な発展により、開発言語としての PHP はすぐに開発者にとっての最初の選択肢になりました。ただし、プログラムのサイズが増大し続けるにつれて、従来の MVC フレームワークでも開発中に多くの問題に遭遇するようになります。
したがって、ますます多くの開発者がフレームワークフリーのアーキテクチャを模索し始めており、同時に PHP 自体の開発を継続的に推進して、PHP をより優れたプログラミング言語にしています。
この記事では、フレームワークを使用せずに PHP コードを記述するためのいくつかの方法とテクニックを検討します。
1. PHP は MVC パターンをネイティブに実装します
MVC パターンは、現在の Web 開発で非常に人気のあるデザイン パターンであり、モデル、ビュー、コントローラーの 3 つの部分に分かれています。モデル層はデータを処理し、ビュー層は表示を処理し、コントローラー層はビジネス ロジックを処理します。
フレームワークを開発せずに、PHP のネイティブ関数と構文を通じて MVC パターンを実装できます。
1. モデル層
モデル層は主に、データベース操作、ファイル操作、データ計算、その他の機能を含むデータ サービスを処理します。これらの関数を別の PHP ファイルにカプセル化し、「model.php」という名前を付けることができます。
model.php では、すべてのデータ操作を管理するクラスを定義できます。例:
class Model { private $db; public function __construct() { $this->db = new PDO("mysql:host=localhost;dbname=test", "root", ""); } public function getAll() { $sql = "SELECT * FROM `users` ORDER BY `id` DESC"; $stmt = $this->db->query($sql); return $stmt->fetchAll(PDO::FETCH_ASSOC); } public function getById($id) { $sql = "SELECT * FROM `users` WHERE `id` = ?"; $stmt = $this->db->prepare($sql); $stmt->execute([$id]); return $stmt->fetch(PDO::FETCH_ASSOC); } // ...其他数据库操作方法 }
上記のコードでは、主にデータベースとの対話を管理するために使用される Model クラスを定義します。コンストラクターを通じて PDO データベース接続を作成し、それをプライベート プロパティ $db に保存します。次に、すべてのユーザーを取得するために使用される getAll() と ID に基づいてユーザー情報を取得する getById() など、データベースを操作するためのメソッドをいくつか定義しました。
2. ビュー レイヤー
ビュー レイヤーは主に、HTML、CSS、JS、その他のフロントエンド テクノロジを含むページ表示機能を担当します。 PHP ファイルに HTML コードを直接記述し、PHP 構文と組み合わせて特定の処理を実行できます。
たとえば、次のように別の PHP ファイルで HTML コードを定義できます。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用户信息</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>用户信息</h1> <table> <thead> <tr> <th>ID</th> <th>姓名</th> <th>性别</th> <th>年龄</th> </tr> </thead> <tbody> <?php foreach ($users as $user): ?> <tr> <td><?php echo $user['id']; ?></td> <td><?php echo $user['name']; ?></td> <td><?php echo $user['sex']; ?></td> <td><?php echo $user['age']; ?></td> </tr> <?php endforeach; ?> </tbody> </table> </body> </html>
上記のコードでは、HTML ページを定義し、PHP の構文を使用して表形式データを処理します。このうち、$users はコントローラー層から渡されるデータです。
3. コントローラー層
コントローラー層は主にビジネス ロジック層であり、リクエスト パラメーターの処理、モデル層を呼び出してデータを取得すること、ビュー層を呼び出してデータやその他の機能を提示することを担当します。 。
たとえば、次のようにコントローラー層を別の PHP ファイルに実装できます:
<?php require_once "model.php"; $model = new Model(); $users = $model->getAll(); include "view.php";
上記のコードでは、最初にmodel.php ファイルを導入し、Model オブジェクトを作成しました。次に、Model オブジェクトの getAll() メソッドを呼び出して、すべてのユーザー情報を取得します。最後に、view.php ファイルを導入し、ページ レンダリングのために $users を View レイヤーに渡しました。
2. フレームワークを使用しないルーティング機能の実装
Web 開発では、ルーティング機能は非常に重要であり、主にさまざまなリクエスト URL を処理するために使用されます。通常、Laravel、ThinkPHP などのフレームワークを使用してルーティング機能を実装できます。ただし、フレームワークを開発せずに、PHP のネイティブ構文を直接使用してルーティング機能を実装できます。
たとえば、以下に示すように、ルーティング関数を別の PHP ファイルに実装できます。
<?php $path = $_SERVER['REQUEST_URI']; if ($path == '/') { echo "欢迎访问首页!"; } elseif ($path == '/about') { echo "欢迎访问关于我们页面!"; } elseif ($path == '/product') { echo "欢迎访问产品页面!"; } else { echo "404 Not Found"; }
上記のコードでは、まず現在のリクエストの URL パスを取得し、異なる操作を実行するには、異なる URL パスを使用します。たとえば、現在のパスが / の場合は「ホームページへようこそ!」と出力し、現在のパスが /about の場合は「会社概要ページへようこそ!」を出力し、現在のパスが /product の場合は「ホームページへようこそ!」と出力します。製品ページ!" "; それ以外の場合は、「404 Not Found」を出力します。
概要:
フレームワークを使用しなくても、PHP のネイティブ構文と関数を使用して、MVC モードやルーティング関数などの一般的な Web 開発ニーズを実装できます。
この方法では多くのコードを手動で記述する必要がありますが、Web 開発の性質をより深く理解し、技術レベルを向上させることもできます。同時に、この方法はフレームワークによるパフォーマンスの損失を軽減し、プログラムの応答速度を向上させることもできます。
以上がフレームワークを使用せずに PHP コードを作成するためのいくつかの方法とテクニックをまとめます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。