PHP Web 開発に関しては、当然ながら開発フレームワークと切り離すことはできません。開発フレームワークは、柔軟な開発方法、MVC レイヤーの分離、ビジネスの分離などを提供します。この記事では主に、PHP で MVC フレームワークのルーティングを学習するための関連情報を紹介します。必要な方は参考にしてください。お役に立てれば幸いです。
最初の記事はよりシンプルで、MVC フレームワークのルーティング機能について説明します。 。 。
一般的なシングルエントリーフレームワークのルーティングは次の構造になっています:
domain/index.php/classname/functionname/var1/var2
ここでのindex.phpはエントリーファイルと呼ばれます。 。 。サーバーの場合、ここでアクセスするのは、index.php の後に呼び出されるコントローラーとその中のメソッドのみであり、値の転送も PHP レベルに基づいてフレームワーク内に実装されます。
話は簡単です、コードを見せてください!!
まず、次のファイル構造を確立します
それを試して、コントローラー内のファイルにアクセスする方法を見てみましょう。 。 。
index.phpに以下の内容を入力してください
print_r($_SERVER);
その後、以下のアドレスにアクセスしてお試しください。
yourdomain/index.php/class/function/var1
ここでの著者はローカル環境を使用しています。私がアクセスするアドレスは localhost/MVC/index.php/class/function/var1 です
最も重要な内容を投稿しました。 2 つの変数
[REQUEST_URI] => /MVC/index.php/class/function/var1
[SCRIPT_NAME] => /MVC/index.php
実際、ルーティングの最も基本的な原則は次のとおりです。
これら 2 つの変数を使用して、URL アドレス内のクラス、関数、パラメータなどを抽出し、クラスを含めて、対応する関数を呼び出し、PHP コールバック関数 call_user_func_array を通じて対応するパラメータを渡します。<?php # 定义application路径 define(‘APPPATH', trim(__DIR__,'/')); # 获得请求地址 $root = $_SERVER['SCRIPT_NAME']; $request = $_SERVER['REQUEST_URI']; $URI = array(); # 获得index.php 后面的地址 $url = trim(str_replace($root, ”, $request), ‘/'); # 如果为空,则是访问根地址 if (empty($url)) { # 默认控制器和默认方法 $class = ‘index'; $func = ‘welcome'; } else { $URI = explode(‘/', $url); # 如果function为空 则默认访问index if (count($URI) < 2) { $class = $URI[0]; $func = ‘index'; } else { $class = $URI[0]; $func = $URI[1]; } } # 把class加载进来 include(APPPATH . ‘/' . ‘application/controllers/' . $class . ‘.php'); #实例化 $obj = new ucfirst($class); call_user_func_array( # 调用内部function array($obj,$func), # 传递参数 array_slice($URI, 2) );
<?php class Index { function welcome() { echo ‘I am default controller'; } } ?> hello.php <?php class Hello { public function index() { echo ‘hello world'; } public function name($name) { echo ‘hello ‘ . $name; } } ?>
関連する推奨事項:
Web サイト アーキテクチャにおける PHP MVC パターンの実装分析_PHP チュートリアル
以上がPHP で MVC フレームワークを学ぶ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。