エクステンションを使うには、通常、次の3つのステップが必要です:
extensions/xyz
以下に解凍します。
xyz
にはエクステンション名が入ります。各エクステンションはユニークで全てのエクステンション中でそれを特定するための名前を持ちます。
エクステンション名を xyz
にした場合、xyz
のすべてのファイルを含む
ベースディレクトリを示す、application.extensions.xyz
というパスエイリアスを
いつでも使用できます。
異なるエクステンションは、インポート、初期構成、使用方法に関する異なる要件があります。 以下では、エクステンションに関して、概要 で記述したカテゴリに従い、 一般的な使用方法のシナリオをまとめます。
アプリケーションコンポーネント を使用するために、
最初に アプリケーション初期構成 へ、
components
プロパティを以下のように追加する必要があります:
return array(
// 'preload'=>array('xyz',...),
'components'=>array(
'xyz'=>array(
'class'=>'application.extensions.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
// 他のコンポーネント初期構成
),
);
その後に、どこでも Yii::app()->xyz
を使って、コンポーネントにアクセスできます。
コンポーネントは preload
プロパティにリストしない限り、
初めてアクセスした時に生成されます。
ウィジェット は主に
ビュー 中で使用されます。
ウィジットクラス XyzClass
が 'xyz' エクステンションに属している場合、
ビュー中で下記のように使用できます。
// 本文(body content)を必要としないウィジェット $this->widget('application.extensions.xyz.XyzClass', array( 'property1'=>'value1', 'property2'=>'value2')); // 本文(body content)を含められるウィジェット // widget that can contain body content $this->beginWidget('application.extensions.xyz.XyzClass', array( 'property1'=>'value1', 'property2'=>'value2')); ...ウィジェットの本文(body content)... $this->endWidget();
アクション は、
特定のユーザーリクエストに応答するために コントローラ により使用されます。
アクションクラス XyzClass
が xyz
エクステンションに属している場合、
コントローラクラスで、CController::actions メソッドを上書き(オーバーライド)すれば
それを使用できます:
class TestController extends CController
{
public function actions()
{
return array(
'xyz'=>array(
'class'=>'application.extensions.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
// other actions
);
}
}
その後、 ルート(道筋) test/xyz
を用いて、アクションにアクセスできます。
フィルタ もまた、
コントローラ により使用されます。
それらは主に、アクション により処理される
ユーザーリクエストの前処理や後処理です。
フィルタクラス XyzClass
が xyz
エクステンションに属している場合、
コントローラクラスで、CController::filters メソッドを上書き(オーバーライド)すれば
それを使用できます:
class TestController extends CController
{
public function filters()
{
return array(
array(
'application.extensions.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
// 他のフィルタ
);
}
}
上記では、限られたアクションだけにフィルタに適用するために、 最初の配列要素でプラスやマイナス演算子を使用できます。 詳細については、CController ドキュメントを参照してください。
コントローラ は、 ユーザーが要求できるアクションのセットを提供します。 コントローラエクステンションを使用するために、 アプリケーション初期構成 中の CWebApplication::controllerMap プロパティへの初期構成が必要です:
return array(
'controllerMap'=>array(
'xyz'=>array(
'class'=>'application.extensions.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
// 他のコントローラ
),
);
その後、ルート(道筋) xyz/a
を
用いてコントローラのアクション a
にアクセスできます。
バリデータは主に、 モデル クラス
(CFormModel か CActiveRecord のどちらかから継承された)により使用されます。
バリデータクラス XyzClass
が xyz
エクステンションに属している場合、
モデルクラスで、CModel::rules メソッドを上書き(オーバーライド)すれば
それを使用できます:
class MyModel extends CActiveRecord // または CFormModel
{
public function rules()
{
return array(
array(
'attr1, attr2',
'application.extensions.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
// 他のバリデーションルール
);
}
}
コンソールコマンド エクステンションは、通常、
追加コマンドにより yiic
ツールを強化します。
コンソールコマンド XyzClass
が xyz
エクステンションに属している場合、
コンソールアプリケーション用の初期構成を設定することで
それを使用できます:
return array(
'commandMap'=>array(
'xyz'=>array(
'class'=>'application.extensions.xyz.XyzClass',
'property1'=>'value1',
'property2'=>'value2',
),
// 他のコマンド
),
);
その後、追加コマンド xyz
を備えている yiic
ツールを使用できます。
注意: コンソールアプリケーションは、通常、ウェブアプリケーションで 使用されるものとは異なる初期構成ファイルを使用します。 もし、アプリケーションを
yiic webapp
コマンドを使用して作成した場合、 コンソールアプリケーションprotected/yiic
用の初期構成ファイルは、protected/config/console.php
、また、ウェブアプリケーション用の 初期構成ファイルはprotected/config/main.php
です。
モジュールの使用方法については、モジュール に関するセクションを参照してください。
一般的な コンポーネント を使用するには、 はじめに、下記のようにそのクラスファイルをインクルードする必要があります。
Yii::import('application.extensions.xyz.XyzClass');
その後、クラスのインスタンスの生成やプロパティの設定、メソッドのコールを 行えます。それを継承して新しい子クラスを作成してもいいです。
Signup or Login in order to comment.