mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-14 14:28: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.
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
@ -143,8 +150,16 @@ class AssetManager extends Component
|
||||
*/
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @var array published assets
|
||||
|
Reference in New Issue
Block a user