ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP フレームワークについて知っておくべきこと

ThinkPHP フレームワークについて知っておくべきこと

silencement
silencement転載
2019-11-23 15:50:504391ブラウズ

ThinkPHP フレームワークについて知っておくべきこと

この章では主に、ThinkPHP の基本的な概要と、Web サーバー開発で一般的に使用される MVC の構造について説明します。

1. エントリーファイル

URL http://localhost/tp5_demo/public/

をブラウザに入力してアクセスします。 htdocs フォルダー内の /tp5_demo/public/index.php ファイル、これはなぜでしょうか? ステップごとに詳しく見てみましょう。

http://localhost と入力すると、Apache は httpd.conf ファイルで指定された DocumentRoot パス (Zhao Tongxie の E:/xampp7/htdocs) にアクセスします。

最後に /tp5_demo/public を結合することは、DocumentRoot パスの下にある /tp5_demo/public フォルダーにアクセスすることを意味します。

では、index.php ファイルはなぜ最終的に配置されるのでしょうか?これは、httpd.conf ファイルに DirectoryIndex を定義する別の属性があり、index.php、index.html およびその他のファイルをエントリ ファイルとして定義するためです。 (何ですか? なぜ画像がないと言っているのですか? httpd.conf ファイルを自分で調べてください)

ThinkPHP では、アクセス アドレスが指定されていない場合、アクセス アドレスはインデックス モジュールの下のインデックス コントローラーにルーティングされます。デフォルトでは、index() メソッド。

つまり、

http://localhost/tp5_demo/public/

http://localhost/tp5_demo/public/index/index/index## と入力します。

も同様の効果があります。

2. コントローラー (コントローラー)

MVC アーキテクチャでは、コントローラーは通常、次の機能のみを担当します。

パラメーターの検証

サービスの呼び出し

モデルの呼び出し

結果の出力

ThinkPHP フレームワークでコントローラーを確立するには、コントローラー モジュールに新しいクラスを作成するだけです。対応するモジュール。

ThinkPHP フレームワークについて知っておくべきこと#上の図に示すように、インデックス コントローラーはインデックス モジュール内に確立されます。

Index コントローラーの Index() メソッドはアクションを表します。これは API 開発のインターフェイスでもあり、構成フレームワークのルーティング URL を通じてバインドできます。

Action には論理演算が多すぎないように注意してください。Action はモデル層 (Model) とビュー層 (View) の呼び出し元のみにする必要があります。実際の論理演算は配置する必要があります。モデル層で処理し、より複雑なロジックをサービス層(Service)に配置して処理するという階層化の考え方が、いわゆるアスペクト指向プログラミング(AOP)です。

この利点は、一般的な操作 (ユーザー ログイン、アクティビティ量の計算など) が変更された場合、モデル内のコードを変更するだけで済み、呼び出し元のコントローラー コードには影響しないことです。モデル。

ロジックがコントローラーに配置されている場合、コードを変更する必要がある場合は、関連するすべてのコントローラー コードを変更する必要があります。

すべてのロジックをコントローラー内に配置し、モデルをまったく使用しないプロジェクトを見たことがありますが、作成時に階層化や反復を考慮する必要がなく、非常に新鮮です。

3. モデル

モデル定義は通常、データ テーブルに対応するモデル クラスです。

サーバーサイド開発における論理操作のほとんどは、実際にはさまざまなデータテーブルの選択/作成/更新/削除です。

ID 75 の記事データの取得など、いくつかの単純な論理操作。これはモデル内のメソッドとしてカプセル化され、コントローラー層で呼び出される必要があります。

ThinkPHP フレームワークは、非表示フィールド、フィールド修飾子、ページング クエリ、関係の定義など、モデルに便利な機能を多数提供します。

モデルとこれらの機能については後ほど詳しく紹介します。

4. ビュー

ビュー レイヤーは、対応する HTML コードを出力します。

テンプレート エンジン (ThinkPHP 独自のエンジン、Smarty エンジンなど) を使用して、フレームワーク内で変数置換を実行できます。

しかし、現在では、API 開発はサーバー側で行われることが多くなり、データはフロントエンドと対話するために API を介して送信され、ページのレンダリングにビューが使用されることはほとんどありません。

5. ルーティング (Route)

多くの PHP フレームワークにはルーティング機能が備わっており、Vue や React などのフロントエンド フレームワークにもルーティングが追加されています。コンセプト。

ルーティングは、実際には、前述したように、アクセス URL とコントローラー内のアクションの間のマッピングです:

http://localhost/tp5_demo/public/index/index/index

は、インデックス モジュールの Index コントローラーの下の Index() メソッドにアクセスすることです。

これを試して、インデックス コントローラーに hello() メソッドを追加してみましょう:

##6. 概要ThinkPHP フレームワークについて知っておくべきこと

この章の内容現在普及している MVC の 3 つの主要コンポーネントの基本的な使用法とルーティングの概念を紹介します。

子供たちは、バックエンド インターフェイスのワークフロー、つまりルーティング -> コントローラー -> モデル ( -> ビュー) を大まかにマスターしているはずです。

以上がThinkPHP フレームワークについて知っておくべきことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。