独自の PHP MVC フレームワークを開発する (1)
このチュートリアルでは、誰もが MVC モードを使用した PHP アプリケーション開発の基本概念を習得できます。このチュートリアルは 3 つの部分に分かれており、これは最初の部分です。
現在、誰もが使用できる人気のフレームワークが数多く市販されていますが、mvc モデルを使用すると、アプリケーションの開発時間を大幅に短縮し、プロジェクトのソース コードをより適切に整理することもできます。一部のモジュールは他のプロジェクトでも使用できます。ここで、簡単な MVC フレームワークを作成する方法を教えたいと思います。このプロジェクトは非常にシンプルで軽量であるため、ベストプラクティスではない可能性があり、安全でもありません。実際のアプリケーションでは改善する必要があります。
使用テクノロジー: php、オブジェクト指向開発手法。
開始
まず、Web サイトのルート ディレクトリに 3 つのフォルダーを作成します
次に、ルート ディレクトリに新しいファイルを作成します:
プロジェクト構造は次のようになります
§ Web サイトのルート ディレクトリ
§index .php
§ models/
§ views/
§controllers/
index.php は、Web アプリケーション全体のエントリ ポイントです、すべてのユーザーリクエストはすべてそれを通過します。ユーザーリクエストをコントローラーフォルダーに保存されている対応するコントローラーにディスパッチするためのコードを作成します。その後、次のメソッドを使用してページジャンプを実現できます:
まず、Web サイトのルート ディレクトリと Web サイトのドメイン名を Index に定義します。 php を使用して、アプリ全体からアクセスできるようにします。
コントローラー ディレクトリに「router.php」という名前の新しいファイルを作成します。このファイルは、すべてのページ リクエストを処理するために使用されます。家のルーターが、家のすべてのコンピューターにインターネットをルーティングする役割を果たしていると想像してください。 router.php ファイルは、受信ページリクエストをindex.phpに受け取り、そのリクエストを別のコントローラにディスパッチします。
route.php のコード:
"<li class="alt" style="border-style:none none none solid; border-left-width:3px; border-left-color:rgb(108,226,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> <span style="margin:0px; padding:0px; border:none; color:black; background-color:inherit">.<span class="vars" style="margin:0px; padding:0px; border:none; color:rgb(221,0,0); background-color:inherit"></span>$vars<span style="margin:0px; padding:0px; border:none; background-color:inherit"></span>.<span class="vars" style="margin:0px; padding:0px; border:none; color:rgb(221,0,0); background-color:inherit"></span>"";
"</span><span style="margin:0px; padding:0px; border:none; background-color:inherit">.</span><span class="vars" style="margin:0px; padding:0px; border:none; color:rgb(221,0,0); background-color:inherit">$vars</span><span style="margin:0px; padding:0px; border:none; background-color:inherit">.</span><span class="string" style="margin:0px; padding:0px; border:none; color:blue; background-color:inherit">""