ソースファイルの配置
それらを下に置くこと/protected/components
は自然な選択です。プロジェクト間で再利用できるより一般的なクラスを後で開発する場合は、それらを別のディレクトリに配置することを検討できます。
ネーミングとディレクトリ構造
これは、アプリの規模によって異なります。多くのコンポーネントがない場合 (20 未満など)、ディレクトリ構造は必要ありませんcomponents
。ディレクトリはそれらすべてに適しています。もう 1 つの実用的な方法は、ビジネス コンポーネントを 1 つのディレクトリに配置し、HTML コンポーネントを別のディレクトリに配置することです (例: widgets
)。
親クラスを含む
構成ファイルには、次のようなセクションが必要です。
// autoloading model and component classes
'import'=>array(
'application.models.activerecord.*',
'application.models.forms.*',
'application.components.*',
'application.classes.*',
// etc
),
このセクションは、実際にはCModule::setImport
アプリケーション インスタンスで呼び出され、オートロード可能なクラスを登録します。これらのクラスを拡張したい場合は、何もする必要はありません。
コンポーネントの一部が上記のようにインポートされない Yii クラスに依存している場合、Yiibase::import
クラスを宣言する前に明示的にインポートする必要があります。例えば:
Yii::import('zii.widgets.jui.CJuiSlider');
class MySlider extends CJuiSlider {
// class contents here
}
パスのエイリアスを登録する
インポート パスの独自のエイリアスを作成する場合 (たとえば、myapp.components
クラスをインポートするときに参照できるパスを作成する場合)、 を使用してこれを行うことができますYiibase::setPathOfAlias
。これに適した場所は、構成ファイルの一番上です。
<?php
Yii::setPathOfAlias('myapp.components','components/my/');
// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
// your whole app configuration is here, and you can now do this:
'import'=>array(
// ...other imports...
'myapp.components.*',
// ...other imports...
),
);