Ошибка при обновлении Symfony до 4.1

Я перенес проект на Symfony 4.1, но не изменил файловую структуру на новую структуру файлов Symfony. Мои активы, например, остаются в папке \ web. Работает нормально, кроме ассетов. Чтобы решить эту проблему, я заменил в контроллерах:

$this->container->get('templating.helper.assets')->getUrl($path);

к

$this->container->get('assets.packages')->getUrl($path);

Также выполняю следующую команду: композитору требуется symfony / asset

После этого, когда я запускаю веб-страницу, я получаю следующую ошибку:

Сервис или псевдоним «assets.packages» был удален или встроен при компиляции контейнера. Вы должны либо сделать его общедоступным, либо прекратить использование контейнера напрямую и вместо этого использовать внедрение зависимостей.

Чтобы попытаться исправить эту ошибку, я поместил ее в services.yml:

services:
assets.packages:
    class: \Symfony\Component\Asset\Packages
    public: true

Но после этого я получаю еще одну ошибку:

Ошибка при обновлении Symfony до 4.1

Вы хоть представляете, что это может быть? Что-то не так?

Ваш services.yml не имеет хорошего отступа, это опечатка?

tchap 03.07.2018 10:10

Да, yml действителен. Я получаю ошибку «Нет пакета ресурсов по умолчанию, сначала настройте его».

D. Pinheiro 03.07.2018 11:36

YML - это действительный, но с неправильным отступом. Перед assets.package должно быть 4 пробела, если вы хотите, чтобы он был дочерним по отношению к services.

tchap 03.07.2018 12:19

Да и есть все 4 пробела! Это была просто опечатка. Есть ли способ настроить пакет по умолчанию, который я не вижу?

D. Pinheiro 03.07.2018 12:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
2
4
998
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Assetic больше не используется, используйте Webpack Encore https://symfony.com/doc/current/frontend.html

Ответ принят как подходящий

Мне удалось исправить ошибку. Достаточно было добавить в качестве аргумента в сервис пакет по умолчанию:

assets.packages:
    class: \Symfony\Component\Asset\Packages
    arguments: ['@assets._default_package']
    public: true

Вы можете объяснить, почему вам нужен аргумент, а не пытаться глобально добавлять новые пакеты

jcarlosweb 18.11.2018 19:12

Другие вопросы по теме