PHP の _remap メソッドの紹介 Codeigniter_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:50:19
オリジナル
915 人が閲覧しました

Codeigniter には、実は見落としがちな優れたコントローラー層処理方法があります
それが今回簡単に紹介するremapです。
実際、CI の URL 制御メソッドでは、例えば:
example.com/index.php/blog/comments/

このフォームでは、ブログがコントローラーであり、コメントがメソッドです。
別の例は、次のようなパラメーターの受け渡しです:
example.com/index.php/products/shoes/sandals/123

サンダル/123 は、渡される 2 つのパラメーターです。
URI の 2 番目のフラグメントは、コントローラー内のどのメソッドが呼び出されるかを決定します。 CodeIgniter では、_remap() メソッドを使用してこのルールをオーバーライドできます。

パブリック関数 _remap()
{
// ここにコードをいくつか...
}

注: コントローラーに _remap() というメソッドが含まれている場合、URI に何が含まれているかに関係なく、このメソッドは常に無視されます。このメソッドは、URI フラグメントによって呼び出されるメソッドが決定されるというルールを削除し、メソッド呼び出しのルール (メソッド ルーティング ルール) を再定義できるようにします。

しかし、問題は、マニュアルに記載されていることは何の役に立つのかということです。実際、これには 2 つの用途があります:
1. URL を変更し、メソッドを非表示にします。たとえば、アプリケーションでは、元の URL メソッドは次のようになります。 http://anmsaiful.net/blog/display_successed_message
表示を変更したいメソッドの名前は次のとおりです:
http://anmsaiful.net/blog/成功
ただし、表示は成功しましたが、実際には既存の display_successful_message が呼び出されます

メソッド、これには _remap メソッドが必要です。

2 この関数を使用して、次のような単純な関数メソッド制御を実行することもできます。 パブリック関数 _remap($method, $params = array())

{
$user_type = $_SESSION['user_type'];
$access_control = $this->validate_access($user_type,$method);
If ($access_control){
$this->$method();
}
他{
$this->show_message();
}
}
まず、ユーザーセッション内のレベル$user_typeを取り出し、引き継ぎメソッドを確認します
validate_access このユーザーにはこのメソッド ($method) を呼び出す権限がありますか
, $access_control==true がある場合、そうでない場合はエラーメッセージが表示されます

ジャッキーロンより抜粋


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

tru​​ehttp://www.bkjia.com/PHPjc/478284.html技術記事 Codeigniter には、実は見落とされがちな優れたコントローラー層の処理方法があります。それを簡単に紹介します。 実際、CI の URL 制御メソッドの式では、たとえば次のようになります。...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート