Yiiスクリプトパッケージの依存関係機能を使用できます。以前も同様の問題がありました。
たとえば、次のようなスクリプトパッケージ構成があります。
'clientScript' => array(
'packages' => array(
'package1' => array(
'basePath' => 'path.to.package1',
'js' => array(
'package1.js',
),
'css' => array(
'package1.css'
),
),
'package2' => array(
'basePath' => 'path.to.package2',
'js' => array(
'package2.js',
),
'css' => array(
'package2.css'
),
'depends' => array(
'package1',
)
),
'package3' => array(
'basePath' => 'path.to.package3',
'js' => array(
'package3.js',
),
'css' => array(
'package3.css'
),
'depends' => array(
'package2',
)
),
)
)
上記のサンプルでは、package2
requires(依存)package1
およびpackage3
requires package2
。あなたの場合、ウィジェットがを使用package2
し、他のスクリプトがを使用するとしますpackage3
。ウィジェットをレンダリングしない場合でも、を使用すると、ウィジェットYii::app()->clientScript->registerPackage('package3');
が自動的にインストールされ、以前にインストールされます(または、以前に一部のスクリプトで既に必要な場合はインストールされませんpackage2
)。package1
package2
package1