“ ルーティングはプロジェクト開発における重要なリンクです。すべてのプロジェクトはルーティングを使用してインターフェイスを管理します。次に、この記事ではソース コードからルーティングを学習します。
”
#1. ルーティングパラメータと変数ルール
##最初に同じコードを開始ただし、今回はルーティング パラメータと変数ルールに焦点を当てます。 これら 2 つのポイントは、使用方法と簡単な実行プロセスを簡単に説明するためのものです。 これら 2 つの点は通常の開発プロセスではあまり使用されないため、より深く理解するために説明は省略します。
ファイル thinkphp/library/think/route/RuleItem.php にあることを覚えておいてください。ルーティングパラメータの使用を見たことがありますか?
また、このドキュメントでは、以下に示すように、サポートされている多くのパラメータも提供します。
このルーティング パラメータの使用方法!
次に、前に使用したルートを使用し、複数のサフィックスの一致をサポートするように URL サフィックス検出を設定します。
では、設定したルートにどのようにアクセスすればよいでしょうか。
通常のルーティングルールに従ってアクセスするとエラーが報告されますので、正しいアクセス方法を読み続けてください。
正しいリクエスト アドレスは http://www.source.com/index.php/hello/1 である必要があります。 html
、つまり、設定したサフィックス html をリクエスト アドレスに接続する必要があります。
このブロックの具体的な実行プロセスは、コード トラッカーを使用して簡単に確認できますが、Kaka はここでは説明しません。
ルーティングパラメータについては、ここで事例を紹介して、基本的には終わりです。
グローバル ルーティング パラメータ
ルーティング パラメータの最後の説明は、グローバル ルーティング パラメータです。
ドキュメントに直接アクセスして確認してください。
ここで、Kaka はテスト用に 2 つのルーティング ルールを設定します。1 つのパラメーターはオプションで、もう 1 つは必須であり、ルーティング ルールはファイルを追加するように設定されています。接尾辞。
パラメータを渡すときのリクエスト アドレス。
パラメータを渡さずにアドレスを要求します。
上記はルーティングパラメータの記述内容です。 特に詳しい説明はなく、簡単に使い方を説明するだけで、こういうものがあるので理解するだけで十分です。
変数ルール
同じ変数ルールですが、Kaka の日常の開発作業ではさらに利用できません。 変数ルール Kaka は、パラメータをフィルタリングすることが唯一の利点であると考えています。 つまり、変数ルールは、ルーティング ルールにパラメータがある場合にのみ存在する動作です。 カカ ここで簡単なケースを紹介します。 デモケース
ルートの後にパラメーターを追加パターン
次に、これを記述する方法を見てみましょう。リクエスト 。
パラメータが数値の場合、入力されたパラメータを出力できます。
ただし、文字が渡されるとエラーが報告されます。
したがって、変数ルールは、ルーティング ルールの後にパラメータをフィルタリングすることであり、通常のルールを使用して処理されます。
これまでは、ルーティング パラメータと変数ルールについて簡単に説明しました。
内容は非常にシンプルですが、使い方を紹介するユースケースがほとんどで、ソースコードを深く検討することはありません。
まず第一に、私は日常の開発中にこれを使用することはほとんどありません。
2 番目に、次の記事でさらに詳しく理解する必要があります。ここでは一般的な理解を示します。
実際のところ、ルーティング アドレスを入力すると内部コンテンツが表示される理由をまだ理解していない人が多いと思われますが、これについては後ほど詳しく説明します。
2. リソースルーティング
リソースルーティングの設定も非常に簡単です。
コマンド ラインを使用してファイルを作成するのも便利です。
作成したコントローラー自体がリソース ルーティング ファイルです。
その後、Route ファイルのリソース メソッドは引き続き実行されます。
このメソッドには、ルーティング ルール、ルーティング アドレス、ルーティング パラメータ、および変数ルールも含まれます。
次に、thinkphp/library/think/route/Resource.php
Class
に移動します。 このクラスでいくつかの簡単な属性の割り当てを時間内に実行します。
次に、カカさんが丸で囲った場所があります。次に、カカさんが丸で囲った場所について説明します。
リソースクラスは RuleGroup クラスを継承しているため、thinkphp/library/think にジャンプします。 /route/RuleGroup.php クラス。
このメソッドによって実行されるアクションに進みます。
- ルーティング ルールは単純に処理されます。ルートにパラメータがある場合は、ルーティング ルールを
blog/<name> または blog/<name> </name></name>
- 次のステップは、$this->parent について説明することです。なぜここに
object(think\route\Domain)
があるのか、最初の記事です。ルーティング アーティクルのセクション 3 が必要です。このステップでは、fullName に値が割り当てられます。
- 最後のステップは、値を fullName に割り当てることです。実際には、ルーティング ルールを fullName に割り当てます。
次に、上位層に戻って次の作業を確認します。
グループ ルーティング ルールを設定した後、主に次のいくつかの属性に値を割り当てます。三つ。
- #ルーティング変数ルール
- ルーティング パラメータ
- REST ルーティング メソッド定義
属性の割り当てについては何も言う必要はありません。対応する属性が何を行うかを理解する必要があるだけです。 次のステップでは、リクエスト メソッドをキー値として、$this を値として使用して、このクラスのインスタンスを返し、このルーティング メソッドがアノテーション ルーティングであるかどうかを検出します。 返された結果は、誰でも簡単に確認できるように出力されます。内容は傍受されていないため、値が何であるかを知る必要があるだけです。
上記の実行後、上位層に戻って遅延メソッドを実行します
まず渡されたパラメータが何なのかを知る: ルートの解析が遅れているかどうか
次に、遅延メソッド
このセクションの内容はルーティング グループ化に関するものであるため、ここでは説明しません。
最後に、Kaka が実行頭脳を提供します。
#リソース理由実行処理3. ドメイン名の設定時期について 実際には、前のセクションに次のようなコード行があります$this->parent->getDomain()
このコード行はメソッド名に基づいています
が要求されたドメイン名を取得することは誰もが知っていますが、このドメイン名がどこに設定されているか知っていますか? このリソース ルートをリクエストすると、Route クラスのコンストラクターが実行されます
# #Constructorホスト メソッドでは、このパラメーターは trueですここだけ注意する必要があります$ this->server(' HTTP_HOST')
で十分です。ドメイン名アドレス を取得するために使用されます。Kaka で囲まれた 2 番目の場所に表示されます。最初の条件が確立されています。ただし、2 番目の条件が成立していないため、
$this->host
host メソッドに直接戻ります。
## 前の手順で取得した #Print#印刷結果
デフォルトのドメイン名を初期化するメソッドがすぐに実行されます
以上がThinkPHP ルーティング パラメーターとリソース ルーティング分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。