Я использую Symfony с начала эры 3.x и собираюсь создавать новые сайты на 4.x. На первый взгляд это кажется нормальным (просто взглянув на демонстрационный сайт), однако мне не нравится идея выхода на бис webpack.
Когда я установил демоверсию, у нее возникли проблемы, так как ссылки облажались из-за подпапки, в которой находится проект. Я обнаружил, что это связано с тем, что мне нужно обновить настройки в webpack на бис, однако я не могу развернуть изменения, поскольку у меня нет node.js, я запускаю apache.
Большинство хостингов cpannel в настоящее время не поддерживают node.js, поэтому полагаться на node.js кажется глупым! Я знаю, что могу выполнить развертывание на локальном сервере, а затем просто отправить развернутую версию на онлайн-сервер, но это может просто вызвать проблемы, я хочу выполнять всю разработку в среде, аналогичной производственной среде.
Из-за этого я ищу варианты в Symfony 4 для управления активами, которые не нуждаются в другой серверной среде, такой как node.js (или даже yarn). Раньше я использовал ассетик, но его поддержка в Symfony 4 была прекращена. Я хочу что-то, что легко настроить и использовать.






Вы все равно можете использовать ассетики, если вам не нравится node.js (что понятно).
Из документа Symfony:
Assetic is a pure PHP library that helps to process & optimize your assets (similar to Encore). Even though we recommend using Encore, Assetic still works great
Ссылка для ссылки: https://symfony.com/doc/current/frontend.html
Недостатком является то, что вы не можете быть уверены, будет ли он по-прежнему работать со следующими крупными обновлениями SF, я согласен, но есть вероятность, что в будущем появятся новые решения, поскольку вы не единственный, кто жалуется на это.
Чтобы продолжить ваши комментарии, с использованием раздела конфигурации assets, чтобы он мог извлекать файлы куда угодно, я думал о чем-то вроде (с соответствующими правами, предоставленными папкам):
assetic:
/* ... */
read_from: %kernel.root_dir%/../build
write_to: %kernel.root_dir%/../build
/* ... */
assets:
common:
inputs:
- %kernel.root_dir%/../assets/js/your_file1.js
- %kernel.root_dir%/../assets/js/your_file2.js
isolatedFileExample:
inputs:
- %kernel.root_dir%/../assets/js/your_file3.js
Хотя не тестировал, держите нас в курсе ваших тестов. Может быть интересно.
Еще одно место, где нужно следить за этим, - github.com/symfony/assetic-bundle/issues/453.
Вы можете настроить исходный и целевой каталог (см. symfony.com/doc/3.3/reference/configuration/assetic.html). Приятное дополнение @MicWit
Если вы имеете в виду read_from и write_to, я почти уверен, что read_from должен находиться в общедоступном (бывшем веб) каталоге. Я посмотрю, смогу ли я заставить его работать с каталогом ресурсов завтра.
Добавил немного информации об этом в свой ответ. Это интересное дело.
Хорошо, похоже, что ассетик даже не будет устанавливаться в Symfony 4.x, поскольку он не удовлетворяет требованиям композитора. Это потребует обновления сборочного пакета на github, чтобы он установился, не говоря уже о работе. Версии 4.x необходимо добавить как совместимые для композитора.
Полезно знать, на мой взгляд, они должны предоставить больше информации об этом в своей документации.
Согласны, и даже если они не хотят поддерживать его, по крайней мере, просто сделайте его совместимым с 4.x
Я не заметил этот абзац, но когда вы переходите к монтажной документации (для версии 4.0 - symfony.com/doc/current/frontend/assetic.html), он просто говорит, что рекомендует не использовать его. Я посмотрю, будет ли ассетик работать в 4.x, но я не думаю, что он будет настроен на использование новой структуры каталогов (активы и т. д.). Я также не решаюсь реализовать его, так как он может перестать работать с любым обновлением.