YiiBase クラスは、YII フレームワークの操作のための共通の基本機能、つまりエイリアス管理とオブジェクト作成管理を提供します。
phpオブジェクトを作成するときは、最初にこのクラスの定義ファイルをインクルードしてから、オブジェクトを新規作成する必要があります。環境(開発環境/テスト環境/オンライン環境)が異なると、Apache の Webroot パスの設定が異なる場合があるため、このクラスの定義ファイルのフルパスも異なります。Yii フレームワークは、次のエイリアス管理を通じてこの問題を解決します。 YiBaseの質問です。
オブジェクトを作成するとき、対応するクラスの定義をインポートする必要があることがよくあります: include()、include_once()、require()、require_once()、set_include_path()。 Yii は、YiiBase::import() を使用してこの問題を一律に解決します。次の図は、YiiBase が提供する「エイリアス管理とオブジェクト作成管理」の動作原理を説明しています。
まず、エイリアス管理について見てみましょう。これは、フォルダー (フォルダーは多くの場合、モジュールに対応します) にエイリアスを与えることです。このエイリアスを Yii フレームワークで使用して、フォルダーの完全なパスを置き換えることができます。たとえば、システム エイリアスはフレームワーク /home/work/yii/framework のパスを表すため、system.base.CApplication を使用して表すことができます。 /home/work/yii /framework/base/CApplication.php ファイルへのパス。もちろん、Yii::setPathOfAlias を通じてエイリアスをアプリケーション層コードに登録することもできます。
通常、ファイルを参照するには絶対パスまたは相対パスを使用します。もちろん、どちらの場合にも欠点があります。絶対パス: コードをテスト環境またはオンライン環境にデプロイする場合、インクルードされるファイルのパスを大量に変更する必要があります。相対パス: 一部のモジュール フォルダーの場所が調整される (名前が変更される) と、すべての相対パスが必要になります。変更される予定です。エイリアスの使用方法は、エイリアスを登録するとき、つまり Yii::setPathOfAlias() を変更するだけです。このようにして、フォルダー内の変更によるコードの変更を 1 か所に集中させることができます。
インポート関数を見てみましょう: a. クラスのオブジェクトを作成できるように、クラスの定義をインポートします。 b. このファイルの下にあるすべてのファイルを直接インクルードできるようにします。 Yii::import は、include()、include_once()、require()、require_once()、set_include_path() の 5 つの関数を統合したものに相当します。また、一般にこれらの関数よりも速度が速くなります。もちろん、Yii::import はパス変更によるトラブルを解決できるエイリアス機能をサポートしています。
最後に、オブジェクトの作成を見てみましょう。YII フレームワークでオブジェクトを作成するには、2 つの方法があります。1. new キーワードを使用します。2. Yii::createComponent メソッドを使用します。
new キーワードを使用してオブジェクトを作成すると、autoload は次の 3 つのステップで対応するクラスの定義を検索します。 a. それがフレームワーク内のクラスであるかどうかを判断します (フレームワーク内のすべてのクラスとこのクラスのフルパス) 2. このクラスが Yii::import を使用してインポートされているかどうかを確認します。非フレームワーク クラスの場合は、このクラスのオブジェクトを作成するときに最初にこのクラスの定義をインポートする必要があります。 include_path ディレクトリからこのクラスを検索します。 名前付き php スクリプトです。そのため、開発するときは、ファイル名と一致するクラス名を保存するようにしてください。これにより、このファイルを含むフォルダーをインポートするだけで済み、すべてのファイルをインポートする必要がなくなります。このフォルダを一度。
Yii::createComponent メソッドを使用してオブジェクトを作成する場合、 new キーワードよりも多くの機能が提供されます: a. このクラスのフルパスエイリアスを通じてクラスの場所とクラス名を指定します (クラス名は一貫している必要があります)ファイル名 ) の場合、このクラスがインポートされていない場合、このクラスの定義はフルパスに基づいて自動的にインポートされます。 2. 作成されたオブジェクトのメンバー変数に値を割り当てます。つまり、以下の図で説明されているように、以前は 3 行以上のコードを記述する必要がありましたが、現在は 1 行のコードで完了できます (記述量を減らし、実行量を増やします)。
以上、Yii フレームワーク分析 (6) - Yii のエイリアス管理とオブジェクト作成管理については、PHP 中国語 Web サイト (www.php.cn) に注目してください。