зачем assets

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
ads
Сообщения: 54
Зарегистрирован: 2014.03.01, 16:52

зачем assets

Сообщение ads »

Уже довольно долго имею дело с yii, но так и не понял зачем регистрировать js файлы? В интернетах ничего кроме того как регистрировать ресурсы (это я умею) и общих слов об удобстве данного подхода не нашел. В чем удобство и польза? Дублирования кода и отсутствие синхронизации многофайловых js решений - сомнительные удобства, на мой взгляд...
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: зачем assets

Сообщение ElisDN »

А чем JS не ресурс?
ads
Сообщения: 54
Зарегистрирован: 2014.03.01, 16:52

Re: зачем assets

Сообщение ads »

ресурс. Вопрос в чем плюсы кроме лишних букв в программе?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: зачем assets

Сообщение anton44eg »

вы можете хранить js файлы в папке с модулем, которая недоступна для вебсервера, например в protected/vendor
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: зачем assets

Сообщение ElisDN »

Пример 1: Есть у меня виджет комментариев, использующий скрипт protected/modules/comments/assets/comments.js. Папка protected закрыта (или вообще перемещена выше public_html). Как мне его в самом модуле без регистрации ресурсов подключить?

Пример 2: Есть в портфолио виджет-слайдер, подключающий jQuery и плагин слайдера. Есть визуальный редактор, подключающий jQuery и плагин редактора. Есть виджеты Yii, подключающие jQuery. Если записывать в каждом виджете <script src="/js/jquery.js">, то он нечаянно подключится два раза, если на странице окажутся два виджета, а если registerCoreScript('jquery') – подключится только один раз и будет помещён прямо в <head>, в скольких представлениях его не записывай. Автоматическая защита от повторений и размещение прямиком в <head>.

Если файлы объёмные, то их и фрагменты JS кода из виджета можно зарегистрировать в POS_END, то есть перед закрывающим </body> (как это делают CGridView и т.п.), чтобы страницы визуально открывались быстрее.

Плюсы: защита от дублирования, помещение прямо в <head> или перед </body>.
ads
Сообщения: 54
Зарегистрирован: 2014.03.01, 16:52

Re: зачем assets

Сообщение ads »

anton44eg писал(а):вы можете хранить js файлы в папке с модулем, которая недоступна для вебсервера, например в protected/vendor
ElisDN писал(а):Пример 1: Есть у меня виджет комментариев, использующий скрипт protected/modules/comments/assets/comments.js. Папка protected закрыта (или вообще перемещена выше public_html)
это понятно. Папку с js в корень сайта и всех делов..
ElisDN писал(а):Если файлы объёмные, то их и фрагменты JS кода из виджета можно зарегистрировать в POS_END, то есть перед закрывающим </body> (как это делают CGridView и т.п.), чтобы страницы визуально открывались быстрее.
точно так же без регистрации прописываем скрипт перед </body>
ElisDN писал(а):Если записывать в каждом виджете <script src="/js/jquery.js">, то он нечаянно подключится два раза
по хорошему, браузер загрузит скрипт только один раз. могу конечно ошибаться.
Т.е. плюс получается только в том что js и php связанные функционалом можно размещать в одной папке?
При этом имеем дублирование кода с необходимостью регулярной чистки assets в процессе разработки(если мы регистрируем целиком папку скриптов).. Сейчас наблюдается тенденция максимального расширения функционала клиентской части.. а тут какая-то магия с js..
Ладно пусть регистрация - это правильно. Что посоветуете, хочу я сделать себе расширение для tinymce, весь скачанный у разработчика js размещать в папке с расширением и регистрировать как положено?
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: зачем assets

Сообщение flashimage »

ads писал(а):по хорошему, браузер загрузит скрипт только один раз. могу конечно ошибаться.
Ошибаетесь. Все хендлеры евентов будут продублированны - это вообще беда.
ads писал(а):Что посоветуете, хочу я сделать себе расширение для tinymce, весь скачанный у разработчика js размещать в папке с расширением и регистрировать как положено?
Делайте как положено, не привязывайте расширение к текущему проекту. И сопровождать такое сложно.
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
xoma_204
Сообщения: 318
Зарегистрирован: 2013.12.12, 02:06

Re: зачем assets

Сообщение xoma_204 »

сам,не понимаю зачем эти assets нужны,только все усложняют
в CI 2 ничего подобного не было
Аватара пользователя
twix
Сообщения: 86
Зарегистрирован: 2011.12.12, 18:25

Re: зачем assets

Сообщение twix »

Т.е. плюс получается только в том что js и php связанные функционалом можно размещать в одной папке?
Вы не верно думаете - это не просто поместить в одну папку, а поместить, чтобы эти скрипты были доступны, т.к. при использовании расширений эти скрипты не доступны, т.к. находятся за пределами корневой папки.

Еще кстати, если расширить класс публикации, то можно попутно минифицировать стили и скрипты. Я сам до этого так и не дошел))
ads
Сообщения: 54
Зарегистрирован: 2014.03.01, 16:52

Re: зачем assets

Сообщение ads »

twix писал(а):то можно попутно минифицировать стили и скрипты.
Вот об этом я и забыл спросить.. Если есть возможность сжимать эти ресурсы то смысл сразу становится очевидным. Вот только как этой возможностью пользоваться?
Аватара пользователя
twix
Сообщения: 86
Зарегистрирован: 2011.12.12, 18:25

Re: зачем assets

Сообщение twix »

Я еще сам не дошел до этого)) Поэтому с удовольствием послушаю советов.
deblogger
Сообщения: 83
Зарегистрирован: 2013.11.09, 15:12

Re: зачем assets

Сообщение deblogger »

Прямым текстом по смыслу обсуждения: не зачем и что дает, а потому что. Потому что расширение.
xoma_204
Сообщения: 318
Зарегистрирован: 2013.12.12, 02:06

Re: зачем assets

Сообщение xoma_204 »

Могут ли в папке assets лежать php Файлы?
в одной из CMS Увидел как в assets копируются php файлы assets\dac85abf\ckeditor_php5.php
Так может быть?
Разве они таким образом не становятся доступны всем?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: зачем assets

Сообщение ElisDN »

Становится. Он там и нужен, чтобы быть доступным всем. Редактор из JS к нему обращается.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: зачем assets

Сообщение ElisDN »

ads писал(а):Папку с js в корень сайта и всех делов..
Ну удачи.
Ответить