ThinkPHP3.1.2版のモジュールとオペレーションマッピングのサンプルコードを復号化

PHP中文网
リリース: 2023-02-28 18:14:02
オリジナル
1316 人が閲覧しました

テンプレートと操作のマッピング機能は、ThinkPHPバージョン3.1.2でサポートされているモジュールと操作設定のマッピング機構であり、構成(エイリアスではなく実際に変更される)URLアクセスアドレスを変更することで動的に変更できるため。 、アプリケーションセキュリティを強化し、マッピングメカニズムにはURLの大文字と小文字を区別しないアクセスの特徴があり、アプリケーションの移行にも非常に役立ちます。

通常の状況では、URL のモジュールを変更したり、アクセスを操作する必要がある場合、変更が必要なファイルが多数あり、相関エラーが発生しやすくなります。特に、ModelControllerの多くの変更により、多くのアプリケーションを新しいバージョンに移行する必要がある場合、モジュールとオペレーションのマッピング機能を通じて、そのような問題を簡単に解決できます。

1. モジュールマッピング

モジュールマッピングを定義するには、設定ファイルで定義するだけです:

'URL_MODULE_MAP'=>array(
  'user'   => 'Member',
  'blog'   => 'Info',
 )
ログイン後にコピー

URL_MODULE_MAPは配列であり、各配列項目は以下を表します:

'模块映射名'=>'实际模块名'
ログイン後にコピー

マッピング名はサイズに依存しない書き込みのため、設定後、URL アクセスが元:

http://serverName/index.php/Member/index
http://serverName/index.php/Info/index
ログイン後にコピー

から:

http://serverName/index.php/user/index
http://serverName/index.php/blog/index
ログイン後にコピー

に変更され、元のアクセス URL が無効になります。これも、define Route での URL 変更との違いの 1 つです。方法。マッピングなしのモジュール アクセスは変更されません。
モジュール マッピングを定義した後、MODULE_ALIAS定数を介して現在のモジュールの URL 名を読み取ることができます。

2. オペレーションのマッピング

モジュール名だけでなく、オペレーション名もマッピングをサポートしており、オペレーションのマッピングは次のように定義されます:

'URL_ACTION_MAP'=>array(
  'Member'  => array(
    'register' => 'add',
    ),
  'Info'   => array(
    'list'   => 'index'
    ),
 )
ログイン後にコピー

URL_ACTION_MAP パラメータは、 二次元配列 、各配列項目は以下を表します:

'实际模块名'=>array(
  '操作映射名1'=>'实际操作名1'
  '操作映射名2'=>'实际操作名2'
  ......
 )
ログイン後にコピー

操作マッピング名は大文字と小文字が区別されません。 上記のように定義された後、URL アクセスは (以前に定義されたモジュール マッピングに関係なく)

http://serverName/index.php/Member/add
http://serverName/index.php/Info/index
ログイン後にコピー

に変更されます。

http://serverName/index.php/Member/register
http://serverName/index.php/Info/list
ログイン後にコピー

同様に、元のURLアドレスからのアクセスは無効です。マッピングが定義されていない操作のアクセス アドレスは変更されません。
オペレーション マッピングを定義した後、ACTION_ALIAS 定数を介して URL アドレス内の現在のオペレーションのオペレーション名を読み取ることができます。
オペレーション マッピングとモジュール マッピングは、影響を与えることなく同時に定義できます。 例:

'URL_MODULE_MAP'=>array(
  'user'   => 'Member',
 ),
 'URL_ACTION_MAP'=>array(
  'Member'  => array(
    'register888' => 'add',
    ),
 )
ログイン後にコピー

その後、元の登録アドレス

http://serverName/index.php/Member/add
ログイン後にコピー

http://serverName/index.php/user/register888
ログイン後にコピー
3 になります。多くの人が懸念していることですが、モジュールと操作のマッピングを設定した後、それに応じて U 関数を変更する必要があります。実際、U 関数は内部でモジュールと操作のマッピングを自動的にサポートしているため、心配する必要はありません。 たとえば、もともと
用户注册
ログイン後にコピー
はテンプレート ファイルで使用されていましたが、Member モジュールと追加操作の間のマッピングがどのように定義されているかに関係なく、U メソッドの記述は常に同じままであり、マッピングされたものを引き続き正確に指します。 URL アドレス。


概要:

モジュールとオペレーションのマッピングは次の状況で使用できます: 1. URL を頻繁に変更する必要がある場合

2. URL のセキュリティが高い場合

3.変更したくない URL アドレスの場合の注意事項:


モジュールとオペレーションのマッピングを使用した後、関連する URL アドレスの
ルート定義

を調整する必要がある場合があります



http://www.bkjia.com/PHPjc/825438.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/825438.htmlTechArticle テンプレートと操作マッピング機能は ThinkPHP3.1.2 バージョンでサポートされていますモジュールと操作設定のマッピング メカニズムは、構成を変更することで動的に変更できます (エイリアスではなく実際に変更されます)...


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート