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