この記事では、PHP を使用して MVC パターンで開発されたファイルを実装する方法を紹介します。 MVC モデルに関する技術記事はインターネット上のどこでも入手できるため、このドキュメントではこのモデルの長所と短所については説明せず (実際には明確には言えません)、その PHP テクノロジの実装についてのみ説明します。今後の一連の記事では、テクノロジーにも焦点を当てていきます。
1. 統一されたWebサイトの入り口を実装する(MVCのController層メソッド、つまりコントロール層を呼び出す)
このようなパスはインターネット上でよく見かけます(http://www.aaa.com/) aaa /bbb/aaa?id=5)、これは不可解です。このような Web サイトを実装するには、いくつかの可能性があります。
1. ファイルの拡張子を隠す このアプローチの利点についてはさまざまな意見がありますが、私は個人的には次のように考えています。必要ありません。
2. Web サイトのリダイレクト ルールを使用して仮想パスを実現します。
3. 強制ファイル解析を使用して仮想パスを実現します。
23 番目の方法を使用して、Web サイトの統一インターフェイスを実現し、Web サイトを合理的に統合し、Web サイトのセキュリティとアーキテクチャをより適切に反映します。これらの 2 つの方法を使用するほとんどの Web サイトは、「MVC」モデルを使用して構築および実装されます。
以下は一例です
アクセスパスは以下の通りです
…/test/*******/Bad
…/test/*******/Good
(ここで「&*」 *" は任意の文字列に置き換えることができます。"...." は Web パスです)
ファイルのディレクトリ構造は次のとおりです
|-- .htaccess
|-- test
|- - Application.php
| -- Controler/GoodControler.php
|-- Controler/BadControler.php
Windows では直接作成できないファイル ".htaccess" は、コマンド ライン モードで作成できることに注意してください。
ファイル 0 :(.htaccess) (このファイルはApacheの設定方法を変更するために使用します)
forcetype application/x-httpd-php
file test.php
/*-- --------------------------------------
* test.php
*
* あなたとしてウェブサイト入口ファイル
* 初期化と入力に使用されます
* コントローラー呼び出しを実行するための呼び出し
*
------------------------ -- --------*/
require "Application.php";
$aa = new Application();
$aa->parse();
$aa->go();
? >
ファイル GoodControler.php
/*-------------------------------- -- ---
* GoodControler.php
*
* url=/test/Good
からのアクセスを制御するために使用されます *
--------------------- --- -------------*/
class GoodControler{
/*
* 制御类的调用メソッド,唯一の报漏给外部接続口
*/
function control(){
echo "これは GoodControler の url=&&*/test/Good";
}
}
?>
ファイル BadControler.php
/*----- --- --- -----------------------------
* BadControler.php
*
* url=/test/Bad Visit を制御するために使用されます
*
--------------------------------------*/
class BadControler{
/ *
* コントロールクラスの呼び出しメソッドは外部に報告される唯一のインターフェイスです
*/
function control(){
echo "これは GoodControler からのものです url=&&* /test/Bad";
. }
?>
ファイル Application.php
/*---------------------- ----------- -------
*Application.php
*
* Web サイトへの統一された入口を実装するために使用され、Controller クラスを呼び出します
*
------ ----------------------- ------------------*/
クラス アプリケーション{
//実行される操作を記録するために使用されます
var $action;
//コントローラーファイルのパス名
var $controlerFile ;
//コントローラーのクラス名
var $controlerClass;
function Application(){
}
function parse(){
$this->_parsePath();
$this->_getControlerFile( );
$this->_getControlerClassname();
}
/*
* 現在のアクセス パスを解析し、実行されるアクション
*/
function _parsePath(){
list($path, $param) =explode("?" . アクション $action、$action で使用されるコントローラー ファイルのパスを取得するために解析します
*/
function _getControlerFile(){
$this->controlerFile = "./Controler/".$this->action."Controler .php";
if(!file_exists($this->controlerFile))
die("コントローラー ファイル名 (".$this->controlerFile.") 解析エラー");
;
}
/*
* アクション $action を通じて、$action で使用されるコントローラー クラス名を解析します。
*/
function _getControlerClassname(){
$this->controllerClass = $this->action." コントローラー";
if(!class_exists($this->controlerClass))
die(" コントローラーのクラス名 ( ".$this->controlerClass.") 解析エラー");
* / *调 *コントローラーを呼び出して、コントローラーのアクションを実行します
* /
Function GO () {
$ C = New $this- & gt;
$ C-& GT; >
次のセクションでは引き続き、PHP での MVC モデル開発について説明します。
http://www.bkjia.com/PHPjc/486163.html