エクステンション概要 ======== Yii を拡張することは、開発の最中に普通に行われていることです。 例えば、新しくコントローラを開発するときは、[CController] クラスを継承することで Yii を拡張しています。 また、新しくウィジェットを書くときは、[CWidget] あるいは既存のウィジェットクラスを拡張しています。 もし拡張されたコードが第三者によって再利用されるように設計されていれば、それが **エクステンション** と呼ばれます。 エクステンションは通常単一の目的で使用されます。Yii の用語では、以下の種類に分類されます。 * [アプリケーションコンポーネント](/doc/guide/basics.application#sec-4) * [ビヘイビア](/doc/guide/basics.component#sec-3) * [ウィジェット](/doc/guide/basics.view#sec-3) * [コントローラ](/doc/guide/basics.controller) * [アクション](/doc/guide/basics.controller#sec-4) * [フィルタ](/doc/guide/basics.controller#sec-5) * [コンソールコマンド](/doc/guide/topics.console) * バリデータ: これは [CValidator] クラスを拡張したコンポーネントクラスです。 * ヘルパ: これは静的なメソッドのみを持つクラスです。クラス名を名前空間として用いるグローバル関数のようなものです。 * [モジュール](/doc/guide/basics.module):モジュールは自己充足的なソフトウエアユニットであり、[モデル](/doc/guide/basics.model), [ビュー](/doc/guide/basics.view), [コントローラ](/doc/guide/basics.controller), その他の支援的なコンポーネントから構成されます。 多くの点においてモジュールは [アプリケーション](/doc/guide/basics.application) に似ています。 一番の違いは、モジュールはアプリケーションの内部にあるということです。 例としては、ユーザ管理機能を提供するモジュールが挙げられます。 エクステンションは、上のどれにも当てはまらないコンポーネントである場合があります。 現実の話として、Yii は注意深く設計されており、コードのほとんど全ての部分は、個別のニーズに適するように、拡張してカスタマイズすることが出来ます。