miraage
@miraage
Старый прогер

Как правильно использовать AssetManager/ClientScript?

Как с помощью этих классов в контролере создавать группы файлов, которые потом подгружать во вьюхе?



Это что-то вроде библиотеки minify, где сначала в groupsConfig создаем группы, а потом дергаем через ?g=groupName.

Видел расширение minScript — использует minify, но как делать не воткнул. Оно просто делало редирект. Может подскажите, как его приготовить?



Если можно это все делать без костылей/экстеншнов — буду благодарен за советы.



В документации нету ничего, кроме описания свойств/методов. Спасибо, у меня IDE тоже показывает…
  • Вопрос задан
  • 7944 просмотра
Решения вопроса 1
@MaxHero
В Yii есть компонент CClientScript, который отвечает за подключение файлов скриптов и css. У данного компонента есть свойство packages, с помощью которого мы можем сконфигурировать пакеты наших JavaScript/CSS файлов, указать для них зависимости, а потом во view подключать эти пакеты одним методом.

Пример из конфига:

'components' => array( 
    'clientScript' => array(
        'packages' => array(
            'item' => array(
                'baseUrl' => 'js',
                'js' => array('item.js'),
                'depends' => array('jquery'),
            ),
            'filter' => array(
                'baseUrl' => 'js',
                'js' => array('filter.js'),
                'depends' => array('jquery'),
            ),
        ),
    ),
),


Тут мы определили 2 пакета (item и filter), каждый из которых состоит из 1го файла JavaScript. Оба пакета зависят от пакета, входящего в состав ядра Yii — jQuery. Таким образом, подключая данные пакеты во view, компонент CClientScript сперва подключит jQuery и только потом файлы из нашего пакета.

Подключаем наши пакеты во view следующим способом:

Yii::app()->clientScript->registerPackage('item');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
z0rg
@z0rg
senior developer / devops
А подскажите, пожалуйста, как использовать scriptMap со сторонними модулями и расширениями, просто посмотреть как называются script и сделать этот map? И как еще добавить минимизацию (minify)?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы