diff --git a/framework/yii/base/View.php b/framework/yii/base/View.php index 0dd2623..68b1094 100644 --- a/framework/yii/base/View.php +++ b/framework/yii/base/View.php @@ -552,7 +552,7 @@ class View extends Component foreach($bundle->depends as $dep) { $this->registerAssetFiles($dep); } - $bundle->registerAssets($this); + $bundle->registerAssetFiles($this); unset($this->assetBundles[$name]); } diff --git a/framework/yii/web/AssetBundle.php b/framework/yii/web/AssetBundle.php index 2a3b9f5..15ba3f6 100644 --- a/framework/yii/web/AssetBundle.php +++ b/framework/yii/web/AssetBundle.php @@ -133,7 +133,7 @@ class AssetBundle extends Object * Registers the CSS and JS files with the given view. * @param \yii\base\View $view the view that the asset files are to be registered with. */ - public function registerAssets($view) + public function registerAssetFiles($view) { foreach ($this->js as $js) { if (strpos($js, '/') !== 0 && strpos($js, '://') === false) { diff --git a/framework/yii/web/AssetManager.php b/framework/yii/web/AssetManager.php index 85b378a..49374f0 100644 --- a/framework/yii/web/AssetManager.php +++ b/framework/yii/web/AssetManager.php @@ -95,10 +95,12 @@ class AssetManager extends Component * it will treat `$name` as the class of the asset bundle and create a new instance of it. * * @param string $name the class name of the asset bundle + * @param boolean $publish whether to publish the asset files in the asset bundle before it is returned. + * If you set this false, you must manually call `AssetBundle::publish()` to publish the asset files. * @return AssetBundle the asset bundle instance * @throws InvalidConfigException if $name does not refer to a valid asset bundle */ - public function getBundle($name) + public function getBundle($name, $publish = true) { if (isset($this->bundles[$name])) { if ($this->bundles[$name] instanceof AssetBundle) { @@ -111,8 +113,10 @@ class AssetManager extends Component } else { $bundle = Yii::createObject($name); } - /** @var AssetBundle $bundle */ - $bundle->publish($this); + if ($publish) { + /** @var AssetBundle $bundle */ + $bundle->publish($this); + } return $this->bundles[$name] = $bundle; }