Новый модуль ресурсов для Livestreet framework

Полностью новый переписанный модуль ресурсов ModuleAsset для фреймворка. За основу взята библиотека Assetic. Ее преимущество в относительной простоте мощности и популярности. Немного расширен функционал для адаптации к потребностям Livestreet. Основной функционал покрыт тестами. В итоге имеется:
Все ресурсы размещаются в публичной директории, доступной для сервера( по умолчанию web). Публикуются автоматически, по этому нужно следить, чтобы публикация не зависила от поведения пользователя. То есть первоначально нужно проходить по всем экшенам админу или разработчику. Почему так? Имееется возможность добавить ресурс или весь набор динамически, в экшене например. Скрипт обходящий все экшены не написан.
Методы PrependScript AppendStyle итд. заменены на зависимости. Теперь порядок скриптов и стилей на странице определяется по параметру depends содержащий массив имен ресурсов от которых зависит ресурс.
Ресурсы компонентов шаблона добавляются на страницу первыми всегда. Они могут зависеть друг от друга на уровне отдельного компонента.
Расположение скриптов перенесено в head с добавлением атрибута defer, по соображению скорости загрузки. Но никто не мешает настроить атрибуты ресурса в параметре attr и добавить туда например async или вовсе убрать все.
Слияние ресурсов зависит от параметра attr. Если встречается ресурс с иными атрибутами он вставляется отдельно на странице.
Большой набор фильтров из библиотеки Assetic позволяет добавлять даже less sass например. Так что этим тоже можно будет пользоваться желающим.
Загружать ресурсы можно не только локально. С удаленного места по HTTP, или откуда угодно. Для этого имеется интерфейс Loader.

Загрузка ресурсов из конфига по старинке с некоторыми изменениями
'js' => [
    'assetJsLocal' => array(
    'file' => __DIR__.'/assets/test.js', 
    'depends' => [ // опционально
          'assetJsHTTP'
    ],
    'filters' => [ // опционально
          'js_min'
     ],
    'attr' => [], // опционально
    'loader' => 'Class/To/Loader' // опционально
]

//коротко
'js' => [
    'assetJsLocal' =>  __DIR__.'/assets/test.js'
]

//или

'js' => [
    __DIR__.'/assets/test.js'
]

4 комментария

avatar
Приятно слышать, что проект ещё жив. Каковы дальнейшие планы?
avatar
Так как приложение будет иметь установку через composer, Хотелось бы и плагины так же устанавливать через него. Но автозагрузка классов в плагинах и самом приложении не PSR4. Как это решить пока не знаю. Если все перевезти на PSR4, тогда делегирование методов модулей плагинами слетает.
avatar
Такой серьезный апгрейт не может не радовать. Молодцы. На месте стоять никак нельзя в наше время

Полностью новый переписанный модуль ресурсов ModuleAsset для фреймворка. За основу взята библиотека Assetic. Ее преимущество в относительной простоте мощности и популярности. Немного расширен функционал для адаптации к потребностям Livestreet. Основной функционал покрыт тестами. В итоге имеется:
Все ресурсы размещаются в публичной директории, доступной для сервера( по умолчанию web). Публикуются автоматически, по этому нужно следить, чтобы публикация не зависила от поведения пользователя. То есть первоначально нужно проходить по  в <a href="http://megaindex.com/ru">сео</a> режимевсем экшенам админу или разработчику. Почему так? Имееется возможность добавить ресурс или весь набор динамически, в экшене например. Скрипт обходящий все экшены не написан.
avatar
olezhikz, вчера изучал Laravel, возможности, как всё устроено, концепция. Мне понравилось, что сама Laravel является «плагином» в composer. Захотел сменить фреймворк, без проблем.
Если нравится подход с composer, хочется psr4, psr7, итд, то почему бы не стать разработчиком «плагинов» под Laravel?

Не топлю за Laravel, WP, или еще какой-то фреймворк/движок… Просто если хочется создавать «продукт», которым будет пользоваться аудитория (разработчики / веб мастера / ЦА), то логичнее делать всё то же самое на системе, которая имеет действующую аудиторию в текущий момент и в перспективе. Когда у сообщества есть поддержка.

Смотрю на текущий прогресс. Прошло 2 месяца с сентября 2к19. Появилось обновление. Оно вроде бы и хорошо, но на мне, на большинстве присутствующих вроде как никак не отразилось изменение, не повлияло. Как будто и не было обновления. Возможно с позиции «разработчика», оно имеет важный вес.
Но всё таки «разработчик» и «веб мастер», это разные ЦА и на сколько я понимаю, основания ЦА все таки у ЛС это как раз «веб мастера».

Нашёл одно разработчика, который пилит сайты на ВП, скромный опыт есть с ЛС. Может быть стоит объединиться, найти еще несколько единомышленников и запилить «продукт» на Laravel?

Например, я со своей стороны помогу с формированием продукта и вывод на рынок, с продвижением, продажами.

Почему не ЛС?
С ЛС не понятная история с правами владения. В любой момент Максим скажет, что «продукт ЛС» это его собственность и запретит использовать в коммерческих целях. Нет разработчиков со стороны, которые желали бы на ЛС что-то разрабатывать, в отличии с желанием пилить под Ларавел.

Нашёл три перспективные ниши для подобного фреймворка. Есть опыт вывода MVP продуктов на окупаемость.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.