ホームページ  >  記事  >  バックエンド開発  >  mvcフレームワークやURL書き換えなどをphpで自分で書く方法

mvcフレームワークやURL書き換えなどをphpで自分で書く方法

WBOY
WBOYオリジナル
2016-06-23 13:17:33798ブラウズ

ガイダンスを求めています


ディスカッションに返信 (解決策)

オンライン チュートリアルもあります

オープンソースをダウンロードするだけです。フレームワークを作成し、コードを見てください。

Apache はファイルを完全に見つけて転送します~

MVC フレームワークと URL 書き換えは直接関係ありません
通常、フレームワークはシングルエントリーなので、実際に URL 書き換えが簡単になります

ソースコードを確認するには thinkphp をダウンロードしてください

ファイル呼び出し
$m=$_GET['m']?ucfirst(strto lower($_GET['m'])):'インデックス'


$m=$m;
$mod=新しい $m;

$method=$_GET['a']?$_GET['a']:'index';

if(method_exists($m,$method) ){
$mod ->$method();
}else{
echo 'このメソッドは存在しません' }



別のファイルルーティングプロセス
/*
* *** ***** ********************************************** **** *********************/
class Prourl {
/**
* URL ルーティング、PATHINFO 形式に変換
*/
static function parseUrl(){
if (isset ($ _Server [ 'PATH_INFO'])) {
// パス情報を取得
$ PATHINFO = Explode ('/', Trim ($ _ Server ['PATH_INFO'], "/"); _GET['m'] = (!empty($ pathinfo[0]) ? $pathinfo[0] : 'index');
array_shift($pathinfo); // 配列の先頭のユニットを配列の外に移動しますアクションを起こす
$_GET['a'] = (!empty($pathinfo[0]) ? $pathinfo[0] : 'index');
array_shift($pathinfo); //次に、配列 Array の先頭のユニットを移動します

for($i =0; $i $_GET[$pathinfo[$i]]=$pathinfo[$i+1]
}

}else{
$_GET[ "m"]= (!empty($_GET['m']) ? $_GET['m']: 'index'); //デフォルトはインデックスモジュールです
$_GET["a "]= (! empty($_GET['a']) ? $_GET['a'] : 'index'); // デフォルトはインデックスアクションです
if($_SERVER["QUERY_STRING"]){
$ m=$_GET ["m"];
unset($_GET["m"]); // 配列から m を削除します
$_GET["a"]); /配列から a を削除します
$query=http_build_query($_GET); // 0=foo&1=bar&2=baz&3=boom&cow=milk 形式を作成します
// 新しい URL を作成します
$url=$_SERVER[" SCRIPT_NAME"]。 "/{$m}/{$a}/".str_replace(array("&","="), "/", $query);
header("Location:"
}
) }
}


}




どういたしまして! !

フレームワークを書いていないので、素通りします

1. 単一のエントリ メソッドを作成します
2. ベース コントローラーとパラメーターを通じて、対応するコントローラーとメソッド名を制御します。例: c はコントローラー、m はメソッド
3. オブジェクト指向を通じてクラスを自動的にロードします。
4. MVC 開発フレームワークを使用したい場合は、smarty をカーネルとして使用できます。
5. データベース ドライバーが必要で、最後に他のクラスが継承する保護クラスを作成できます。
6. さらに、開発者が使いやすくするために、一部のコンポーネントとウィジェットをフレームワークに統合する必要があります。通常、ウィジェットはビューによって使用されます。

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