Я работаю над проектом Symfony2.4, и я решил пойти в производственную среду, но, опустошив производство кеша, я получил эту ошибку:
[Symfony \ Component \ DependencyInjection \ Exception \ ServiceNotFoundException] Вы запросили несуществующий сервис "sensio_distribution.webconfigurator".
- Создание единого объекта из существующей базы данных с помощью symfony2 и доктрины
- Как получить все переменные из шаблона Twig?
- RuntimeException: невозможно создать каталог кэша (/ var / www / sonata / app / cache / dev)
- Symfony2 / Doctrine: как повторно сохранить объект с OneToMany в качестве каскадной новой строки
- Symfony2 отключает проверку формы HTML5
- Symfony 3: Как перенаправить из InteractiveLoginEvent-прослушивателя
Я не знаю, когда эта служба используется, но я искал файл «webconfigurator.xml», и я нашел службу под названием «sensio_distribution.webconfigurator» … Путь к файлу следующий:
продавец / Sensio / Bundle / DIstributionBundle / Ресурсы / конфигурация / webconfigurator.xml
И это файл:
<?xml version="1.0" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> <parameters> <parameter key="sensio_distribution.webconfigurator.class">Sensio\Bundle\DistributionBundle\Configurator\Configurator</parameter> </parameters> <services> <service id="sensio_distribution.webconfigurator" class="%sensio_distribution.webconfigurator.class%"> <argument>%kernel.root_dir%</argument> </service> <!-- deprecated, kept for BC --> <service id="sensio.distribution.webconfigurator" alias="sensio_distribution.webconfigurator" /> </services> </container>
Так почему у меня такая ошибка?
EDIT: пакет распространения sensio загружается в AppKernel.php
if (in_array($this->getEnvironment(), array('prod', 'dev', 'test'))) { $bundles[] = new Acme\DemoBundle\AcmeDemoBundle(); $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); }
Я нашел ошибку:
Мне пришлось переместить мой пакет Acme вне условия «если», удалив «prod» в:
if (in_array($this->getEnvironment(), array('prod', 'dev', 'test')))
и это работает 🙂