mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-14 22:30:27 +08:00
Added asset processor concept.
This commit is contained in:
@ -25,6 +25,13 @@ class AssetManager extends Component
|
|||||||
* arrays for creating the [[AssetBundle]] objects.
|
* arrays for creating the [[AssetBundle]] objects.
|
||||||
*/
|
*/
|
||||||
public $bundles;
|
public $bundles;
|
||||||
|
/**
|
||||||
|
* @var array list of asset processors. An asset processor will convert a special type of asset files
|
||||||
|
* (e.g. LESS, Sass, TypeScript) into JS or CSS files. The array keys are the file extension names
|
||||||
|
* (e.g. "less", "sass", "ts"), and the array values are the corresponding configuration arrays
|
||||||
|
* for creating the processor objects.
|
||||||
|
*/
|
||||||
|
public $processors;
|
||||||
/**
|
/**
|
||||||
* @return string the root directory storing the published asset files.
|
* @return string the root directory storing the published asset files.
|
||||||
*/
|
*/
|
||||||
@ -143,8 +150,16 @@ class AssetManager extends Component
|
|||||||
*/
|
*/
|
||||||
public function processAsset($asset, $basePath, $baseUrl)
|
public function processAsset($asset, $basePath, $baseUrl)
|
||||||
{
|
{
|
||||||
|
$ext = pathinfo($asset, PATHINFO_EXTENSION);
|
||||||
|
if (isset($this->processors[$ext])) {
|
||||||
|
if (is_array($this->processors[$ext])) {
|
||||||
|
$this->processors[$ext] = Yii::createObject($this->processors[$ext]);
|
||||||
|
}
|
||||||
|
return $this->processors[$ext]->process($asset, $basePath, $baseUrl);
|
||||||
|
} else {
|
||||||
return $baseUrl . '/' . $asset;
|
return $baseUrl . '/' . $asset;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array published assets
|
* @var array published assets
|
||||||
|
Reference in New Issue
Block a user