CakePHPのRouterの仕組みと使い方
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> に存在します
デフォルトルート: /: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>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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