PHP URL ルーティング クラスの例_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:25:18
オリジナル
888 人が閲覧しました

私は少し前にモバイル アプリケーション用の API を作成しましたが、常に query_string アドレスを使用していましたが、すべてのアクションは act パラメーターに基づいて区別されていました。当初は、m パラメータを使用してファイルをロードしてインスタンス化することで、「?c=controller&m=method&type=3&id=1」に書き換えたかったのですが、後で、sina weibo API がアドレスをルーティングしていることがわかりました。アドレスルーティングについても追随することを決定した。もともと CI フレームワークには独自のルーティング効果がありましたが、API を書くことを検討していたので、より純粋に書きたいと思いました。
デフォルトのコントローラー (インデックス) とメソッド (インデックス) をサポートします:

コードをコピーします コードは次のとおりです:

index.php
index.php/controller
index.php/controller/method
index .php/controller/method/prarme1/value1
index.php/controller/method/param1/value1/param2/value2....

特定のクラスは次のとおりです:

コードをコピーします コードは次のとおりです:

$APP_PATH= str_replace($ _SERVER['DOCUMENT_ROOT'], '', __FILE__);
$SE_STRING=str_replace($APP_PATH, '', $_SERVER['REQUEST_URI']) // フィールドindex.php/controller/methon/id/3を計算します。
$ 後、index.php SE_STRING=trim($SE_STRING,'/');
//echo $SE_STRING.'
';
//$SE_STRING はここでフィルタリングする必要があります。
$ary_url=array(
'controller'=>'index',
'method'=>'index',
'pramers'=>array()
);
//var_dump($ary_url);
$ary_se=explode('/', $SE_STRING);
$se_count=count($ary_se);

//ルーティング制御
if($se_count==1 and $ary_se[0]!='' ){
$ary_url['controller']=$ary_se[0];

}else if($se_count>1){//次のパラメータ、key-value を計算します
$ary_url['controller']=$ary_se[0];
$ary_url['method']=$ary_se[1] ;
if($se_count>2 and $se_count%2!=0){ //キーと値の形式が形成されていません
die('パラメータエラー') ;
; $ ary_url [pramers]、$ ary_kv_hash);

$module_name=$ary_url['controller'];
$module_file=MODULE_DIR.$module_name.'.class.php';
//echo $module_file;
$method_name=$ary_url['メソッド'];
if (file_exists($module_file)){

include($module_file);

$obj_module=new $module_name() // モジュール m
をインスタンス化します。
if(!method_exists($obj_module, $method_name)){
die('メソッドが存在しません');
}else{
if(is_callable(array($obj_module, $method_name))){ //このメソッドかどうかif(!is_null($ get_return)){//戻り値は空ではない
var_dump($ get_return)}}}}
else

{

die( 'モジュールファイルは存在しません');
}
?>






http://www.bkjia.com/PHPjc/825120.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/825120.html

技術記事

少し前に、私は常に query_string アドレスを使用して、すべてのアクションが act パラメーターに基づいて区別されるモバイル アプリケーションに関する API を作成しました。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!