thinkphp では、ルーティングとは、URL に従って対応するハンドラーに割り当てられるマッピングを指します。その機能は、URL アクセス アドレスを単純化し、定義されたルーティング タイプに従って正しい解析を行うことです。簡単に言えば、ルーティングはパスの解析であり、クライアントによって送信されたパスに従って、リクエストは対応するモジュール、コントローラー、またはメソッドに解析されます。
このチュートリアルの動作環境: Windows 7 システム、thinkphp v5.1 バージョン、Dell G3 コンピューター。
ThinkPHP5 のルーティング機構を勉強してみましょう。
TP5 の完全な開発マニュアルではルーティングについて非常にわかりやすく説明されていますが、この記事ではまだ TP5 のルーティングが何であるかを勉強します。結局のところ、本を読むよりもブログを読んだ方が気楽です。
まずは 3 つの質問をしてください:
Route (ルート) は、URL に基づいて対応するハンドラーに割り当てられたマッピングを指します。
簡単に言えば、これはパス分析であり、クライアントから送信されたパスに従って、リクエストが対応するモジュール/コントローラー/メソッドに解析されます。
公式ドキュメントは次のように定義されています=>ルーティングの役割は、URL アクセス アドレスを単純化し、定義されたルーティング タイプに基づいて正しい解析を行うことです。
マニュアルの説明: 通常、習慣に従って ThinkPHP プロジェクトにアクセスする場合、通常の URL は次のように記述する必要があります (ローカルの例) http:// localhost/project name/public/index.php/モジュール名/コントローラ名/メソッド名
URL の文字列を入力した後、非常に絶望的な気分になるでしょう、(ささやき) = > " 「アドレスの長いリストを入力できる小さなインターフェイスをテストしたいのですが、アドレスが長すぎて思い出せません...」現時点では、ルーティングを使用してアドレスを簡素化し、アドレスを短縮しながらいくつかのルールを定義できます。
「道を簡素化するため」と口走る人もいるかもしれません。 もちろんそれも理由の一つではありますが、理由はそれほど単純ではありません。
パスを簡略化したのが大きな理由で、最初はパスが長すぎると思って駆け寄ってオンにしていましたが、後で使用する過程で、ルートの役割. 実際、それは単純化されたパスに限定されません。
ルートの強制使用を有効にして、誰もが私が定義したルート経由でのみアクセスできるようにすることができます。これには、ユーザーに使用させたくないコントローラーを作成できるという利点があります。アクセス スクリプト。強制的に使用するために完全なルーティングを有効にすると、ユーザーはこれらのスクリプトにアクセスできなくなります。そうでないと、ユーザーがこれらのスクリプトにアクセスし、そのスクリプトがデータベースを変更する場合があり、より危険になります。
また、このパスからの取得操作であるかポスト操作であるかを定義できるため、以前のような状況は発生しません。 get 操作からも取得できます。アクセスもできますし、post にもアクセスできます。これは非常にわかりにくいです。もちろん、get と post の両方にアクセスできれば大したことではないという人もいるでしょう。実際には、 Restful API のアイデアを具体化するには、これらのメソッドを区別する方が便利です。
同様に、http と https の規制については説明しません。
この時点で、ルーティングはちょっと魔法のようだと思いませんか? ルーティングによって非常に多くのことができることがわかったので、その使用方法を勉強してみましょう。
使用する前に、まず構成情報を理解しましょう。これはまだ私のフォーク プロジェクトです。開いてください。設定ファイル:
#注意すべき点が 2 つあります。まず、最初のファイル内にあります。赤いボックス デフォルトでは、tp はルーティング モードをオンにします。2 番目の赤いボックスでは、tp はデフォルトでルーティングの強制使用をオフにします。これは何を意味しますか?現在でも通常のアドレスモードで正常にアクセスできますし、ルーティング経由でも正常にアクセスできます。
通常、プロジェクトを実行するときは、安全上の理由からこれを true に変更します。そのため、その効果を見てみましょう。
将来の状況強制ルーティングをオンにする:
通常のアドレスによるアクセスは成功する可能性があるので、ここで強制ルーティングをオンにしましょう:
同じアドレスがエラーを報告し、ルートが見つからないというエラーをスローしました。ルーティング ファイルでこのルートを定義していなかったため、エラーがスローされました。これは、ルーティングの使用が強制されるようになりました。
それでは、今それを定義しましょう。まず、最も単純なものから始めましょう:
ルート ファイルを見つけます
thinkphp フレームワーク]
以上がthinkphpルーティングとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。