ホームページ  >  記事  >  バックエンド開発  >  PHP で MVC フレームワークを学ぶ方法

PHP で MVC フレームワークを学ぶ方法

*文
*文オリジナル
2017-12-29 18:03:472336ブラウズ

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 を通じて対応するパラメータを渡します。


次はコードです。私が書いたものよりもコードを読んだほうが理解しやすいはずです。はぁ~~

index.phpの内容は次のとおりです:

<?php 
# 定义application路径 
define(‘APPPATH&#39;, trim(__DIR__,&#39;/&#39;)); 
# 获得请求地址 
$root = $_SERVER[&#39;SCRIPT_NAME&#39;]; 
$request = $_SERVER[&#39;REQUEST_URI&#39;]; 
$URI = array(); 
# 获得index.php 后面的地址 
$url = trim(str_replace($root, ”, $request), ‘/&#39;); 
# 如果为空,则是访问根地址 
if (empty($url)) 
{ 
# 默认控制器和默认方法 
$class = ‘index&#39;; 
$func = ‘welcome&#39;; 
} 
else 
{ 
$URI = explode(‘/&#39;, $url); 
# 如果function为空 则默认访问index 
if (count($URI) < 2) 
{ 
$class = $URI[0]; 
$func = ‘index&#39;; 
} 
else 
{ 
$class = $URI[0]; 
$func = $URI[1]; 
} 
} 
# 把class加载进来 
include(APPPATH . ‘/&#39; . ‘application/controllers/&#39; . $class . ‘.php&#39;); 
#实例化 
$obj = new ucfirst($class); 
call_user_func_array( 
# 调用内部function 
array($obj,$func), 
# 传递参数 
array_slice($URI, 2) 
);

application/controllersに次の2つのファイルを追加します

index.phpをデフォルトのコントローラとして使用します


<?php 
class Index 
{ 
function welcome() 
{ 
echo ‘I am default controller&#39;; 
} 
} 
?> 
hello.php
<?php 
class Hello 
{ 
public function index() 
{ 
echo ‘hello world&#39;; 
} 
public function name($name) 
{ 
echo ‘hello ‘ . $name; 
} 
} 
?>

テストして、それができるかどうかを確認してくださいにアクセスできます。上記のルーティング構造によると。試してみましょう


このアクセスは正常で、hello クラス内の name メソッドが正しく呼び出され、パラメータ barbery が渡されます。 。 。

関数名を入力せずにもう一度試して、デフォルトでindexを呼び出せるかどうかを確認してください。 。


答えも「はい」です。 。 。

最後に、ルート アドレスにアクセスして、


もデフォルトのコントローラーに正しくマッピングされていることを確認します。 。 。

OK、簡単な MVC ルーティング関数が完成しました。 。 。

関連する推奨事項:

PHP MVC フレームワーク コア クラス

独自の PHP MVC フレームワーク ノートを書く

Web サイト アーキテクチャにおける PHP MVC パターンの実装分析_PHP チュートリアル

以上がPHP で MVC フレームワークを学ぶ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。