ホームページ  >  記事  >  バックエンド開発  >  CI フレームワークのソースコードを読むメモ 8 Controller.php、cicontroller.php_PHP チュートリアル

CI フレームワークのソースコードを読むメモ 8 Controller.php、cicontroller.php_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:13:371049ブラウズ

CIフレームワークのソースコード読解メモ8 Controller.php、cicontroller.php

最近時間が迫っており、ソースコード読解シリーズの更新が少し遅れています。コントローラーのコードは比較的少ないため、このブログではまずこのファイルのソース コード分析を更新します。

ルーティングと配布の後、実際のアプリケーションのコントローラーはユーザーからのすべてのリクエストを引き継ぎ、ユーザーデータと対話する責任を負います。 CI 内のすべてのアプリケーション コントローラーは CI_Controller のサブクラスである必要があります (CI のコアを拡張しない限り、コントローラーの親クラスは MY_Controller にすることができます)。

アプリケーションコントローラーでは、次のようなコードをよく使います:

リーリー

これらはどのように実装されているのでしょうか?次に簡単に見ていきましょう。

このクラスの構造は非常に単純ですが、CI_Controller のクラス図を掲載します:

1. _construct() コンストラクター

ここで、CI はプロセスを実行し、ロードされたすべてのコンポーネントを CI_Controller に追加します (is_loaded 関数がロードされたすべてのコンポーネントを追跡することは前に説明しました):

リーリー

コントローラーがインスタンス化されるときに is_loaded によって追跡されるコンポーネントを見てください:

これは、$this->input やその他のメソッドを通じて CI コンポーネントを呼び出すことができる理由を説明しています。

これだけでは不十分です。Loader も導入しましょう:

リーリー

これで、Loader コンポーネントを使用して、設定をロード (

$this->load->config)、モデルをロード ($this->load->model) し、ビューをロード ($) できるようになりました。これ -> ロード -> 表示)

CI_Controller は、複数のコンポーネントを保持するスーパークラスであると言えます。このように、デザインパターンにおける「エージェントパターン」によく似ています。

2.&get_instance

簡単に説明すると、CI_Controllerはシングルトンモードのクラスであり、このクラスのインスタンスはget_instance()メソッドを通じて取得されます。このメソッドは、CodeIgniter.php の get_instance 関数によって呼び出されます。 リーリー

以下はコントローラーに関するヒントです:

1. CI のコントローラーでディレクトリをカスタマイズできます。たとえば、application/controller ディレクトリにディレクトリ admin を作成し、コントローラーの URL アクセス パスは次のようになります。 リーリー

2. コントローラーは過度のロジックを持たないようにして、ビジネス ロジックをモデルにカプセル化する必要があります。

3. コントローラーはビジネスに応じて区別する必要があります。たとえば、UserController はユーザー関連のリクエストを処理し、AppController はアプリケーションのリクエストを処理します。これは原則ではなく、単なる方法です。

4. コントローラーのクラス名は大文字で始まり、ファイル名はすべて小文字である必要があります。

5. コントローラー内のアンダースコアで始まるメソッドは、CI によってプライベート メソッドとみなされ、外部から直接アクセスすることはできません。

上記がControllerの内容の全てです。

最後に、CI_Controllerのソースコードを掲載します:

リーリー

この記事の参考文献:

http://www.bkjia.com/PHPjc/914485.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/914485.html

CI フレームワークのソースコード読書メモ 8 Controller.php、cicontroller.php 最近時間が迫っており、ソースコード読書シリーズの更新が少し遅れています。コントローラーのコードが比較的小さいため、このブログが最初に更新されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。