2016-09-14 2 views

ответ

1

Ассортимент активов рекомендуется использовать для работы с CSS и Javascript-активами в Yii2. В официальных документах есть complete guide.

Пример расслоения приложения активов:

<?php 

namespace app\assets; 

use yii\web\AssetBundle; 

class AppAsset extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 
    public $css = [ 
     'css/site.css', 
    ]; 
    public $js = [ 
    ]; 
    public $depends = [ 
     'yii\web\YiiAsset', 
     'yii\bootstrap\BootstrapAsset', 
    ]; 
} 

Пример расширения или конкретной пачке функциональности активов:

<?php 

namespace app\assets; 

use yii\web\AssetBundle; 

class FontAwesomeAsset extends AssetBundle 
{ 
    public $sourcePath = '@bower/font-awesome'; 
    public $css = [ 
     'css/font-awesome.min.css', 
    ]; 
    public $publishOptions = [ 
     'only' => [ 
      'fonts/', 
      'css/', 
     ] 
    ]; 
} 

Тогда в представлении или макете вы можете зарегистрировать его, как это:

use app\assets\AppAsset; 

... 

AppAsset:register($this); 

Альтернативы, такие как registerJs() и registerJsFile(), но не рекомендуется. Некоторые из самых больших недостатков:

registerJs() - Javascript в строке PHP без сильной потребности - это зло - не выделение IDE/редактора и автозаполнение, смешивание двух разных языков в одном файле.

registerJsFile() - База кода становится менее организованной. При таком подходе вы думаете о включении определенных файлов в определенные места. С пакетами активов вы просто используете активы, содержащие все файлы, параметры и т. Д.

Есть больше преимуществ, и это уже обсуждалось, например, в этом SO question.

Смежные вопросы