ホームページ バックエンド開発 PHPチュートリアル CakePHPのRouterの仕組みと使い方

CakePHPのRouterの仕組みと使い方

Jun 13, 2016 pm 01:04 PM
cakephp controller rest router url

CakePHPのRouterの仕組みと使い方

1. 一般的な CakePHP リクエストの処理プロセス


?? ? ユーザーが Web サイトを閲覧してリクエストを行うと、.htaccess ファイルはリクエストを webroot/index.php ファイルにマッピングします。 1. 定数の定義。 bootstrap.php ファイル; 3 .dispather() 関数を呼び出します。

?

2. ルーター、ディスパッチャー、コントローラーの関係を理解する

?? ?(1) ルーターは、このリクエストのパラメーター (コントローラー、アクション、およびこのリクエストに関連付けられたその他のすべてのビジネス) を解釈して抽出します。

?? ?(2) ルーティングを使用した後、要求された URL がコントローラー アクション (特定のコントローラー クラスのメソッド) にマッピングされます。

?? **** 部分関数分析 ****
?? 1.ルーター::parse($url)

?? 提供された URL に従って、コントローラー、アクション、パラメーターの配列を解析します。基準に基づく基準: デフォルトのルーティング、新しい定義によって作成されたルーティング ルール。

?

?

?? 2. Router::getArgs($args, $options = array()) 渡されたパラメータをパラメータに変換します

?

3. CakePHP でのルーター設定

?? CakePHP ソースパッケージ内の router.php ファイル:


?? カスタム ルーティング:

connect() 関数の 3 つのパラメーター: 1. 照合する URL 値、2. カスタマイズされたルーティング要素のデフォルト値、3. ルーターが照合するのに役立つ通常のルール。 URL 要素。

ルーター定義の基本形式: ?

?
Router::connect(
    'URL',
    array('paramName' => 'defaultValue'),
    array('paramName' => 'matchingRegex')
);
ログイン後にコピー

?

?? 注:

(1)

は、URL タイプを定義します。 URL は通常、スラッシュで区切られますが、ワイルドカード (*) またはカスタム ルーティング要素 が含まれる場合もあります。 (URL 要素の先頭にはコロン が付きます) ワイルドカードを使用して URL のタイプと一致させます。特殊なルート要素を使用すると、コントローラーの アクション のパラメーターを収集できます。

(2)

リクエストが発生すると、これらのルーティング要素の値はコントローラーの <span style="font-size: 12.0pt ;"> $this->params<span></span></span> <span style="font-size: 12.0pt;">$this->params</span> が存在します。これは名前付きパラメータ (名前付きパラメータ) とは異なるため、違いに注意してください: 名前付きパラメータ (/controller/action/name:value) カスタム ルーティング要素中に <span style="font-size: 12.0pt;">$this->passedArgs<span></span></span> <span style="font-size: 12.0pt;">$this->passedArgs</span> に存在します <span style="font-size: 12.0pt;">$this->params<span></span></span> <span style="font-size: 12.0pt;">$this->params</span><span></span> に存在します

?(3)

デフォルトルート: /:controller, /:controller/:action/* ?

?? そのような構成は何を返しますか? ? ?

?? ?確認する 2 つの例を書いてください:


?

4. CakePHP でのルーターのアプリケーション

??(1) 簡単なアプリケーション:

??(2) 高度なアプリケーション:




?? ?SlugRoute 解析方法は非常に簡単です。まず、親クラスの parse() 関数を呼び出して、正規表現を解析するためのパスを取得します。空または false が返されると、パス (パスが )、有効なパス (一致するパラメータを持つ <span></span>post の場合) <span></span>. を取得した場合のみ CakeRoute:parse() はパラメーター <span></span>、 をすでに作成しているため、パラメーター , ターゲットが存在しない場合は だけを返し、またはエラーを返します。 ?? ?

<span style="font-size: 12.0pt;">app/config/routes.php<span></span></span><span></span><span style="font-size: 12.0pt;">app/config/routes.php</span> の style="font-size: 12.0pt;"> は、この <span style="font-size: 12.0pt;">中</span>ルーター クラスを参照します:

?

5. CakePHP の Router 設定ファイルの欠点

?? CakePHP

では、Route を設定する必要はありません。 >/controller/action/param<span></span> を使用して <span></span>URL<span></span> を解析します。しかし、多くの場合、このような <span></span>URL<span></span> はフレンドリーではないため、カスタム <span></span>Route<span></span> を設定する必要があり、結果は になります。 Route<span></span>設定ファイルは常に拡張されています。 <span></span>PHP<span></span> はリクエストごとに実行環境を再構築する必要があり、リクエストごとに <span></span>Route<span></span> 設定ファイルを再構築する必要があることに注意してください。この構成では、巨大な <span></span>Route<span></span> 構成ファイル全体を繰り返し解析する必要があり、これは間違いなく大きな負担でした。 <span></span> <span></span>?? REST

スタイル アーキテクチャ、リソース を使用すると、この問題を解決できます。 URL<span></span>の動作は比較的確実であり、操作方法は<span></span>HTTP<span></span>メソッドによって決定されるため、<span></span>Route 設定ファイル すぐに体重が減ります。 <span></span> <span></span><span></span>??REST

ソフトウェア アーキテクチャは、インターネットを実現するために設計されたハイパーメディア分散システムです。

アクション ガイド
。このコンセプトはあらゆるテクノロジーを使用して実現できます。このソフトウェア アーキテクチャの最も有名な実装は、
HTTP<span></span> プロトコルです。通常、REST を <span></span>REST/HTTP<span></span> と書きます。実際には、<span></span>REST は、HTTP、またはさらには RESTREST ソフトウェア アーキテクチャとして理解されます。 > と <span></span>HTTP<span></span> は同等の概念と見なされます。 <span></span> <span></span>

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

PHP 関数の紹介 - get_headers(): URL の応答ヘッダー情報を取得します PHP 関数の紹介 - get_headers(): URL の応答ヘッダー情報を取得します Jul 25, 2023 am 09:05 AM

PHP 関数の紹介 - get_headers(): URL の応答ヘッダー情報の取得の概要: PHP 開発では、Web ページまたはリモート リソースの応答ヘッダー情報を取得する必要があることがよくあります。 PHP 関数 get_headers() を使用すると、対象 URL の応答ヘッダー情報を簡単に取得し、配列の形式で返すことができます。この記事では、get_headers() 関数の使用法を紹介し、関連するコード例をいくつか示します。 get_headers() 関数の使用法: get_header

e からの NameResolutionError(self.host, self, e) の理由とその解決方法 e からの NameResolutionError(self.host, self, e) の理由とその解決方法 Mar 01, 2024 pm 01:20 PM

エラーの理由は、urllib3 ライブラリの例外タイプである NameResolutionError(self.host,self,e)frome です。このエラーの理由は、DNS 解決が失敗したこと、つまり、ホスト名または IP アドレスが試みられたことです。解決できるものが見つかりません。これは、入力された URL アドレスが間違っているか、DNS サーバーが一時的に利用できないことが原因である可能性があります。このエラーを解決する方法 このエラーを解決するにはいくつかの方法があります。 入力された URL アドレスが正しいかどうかを確認し、アクセス可能であることを確認します。 DNS サーバーが利用可能であることを確認します。コマンド ラインで「ping」コマンドを使用してみてください。 DNS サーバーが利用可能かどうかをテストします。プロキシの背後にある場合は、ホスト名の代わりに IP アドレスを使用して Web サイトにアクセスしてみてください。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

See all articles