NelmioSolariumBundle для Symfony 2 и проблемы с Monolog

Я пытаюсь установить NelmioSolariumBundle с моим приложением Symfony 2, следуя прочитайте меня, однако после регистрации пакета в AppKernal.php я получаю следующую ошибку:

ErrorException: Catchable Fatal Error: Argument 1 passed to Nelmio\SolariumBundle\Logger::setLogger() must be an instance of Psr\Log\LoggerInterface, instance of Symfony\Bridge\Monolog\Logger given, called in /var/www/vhosts/symfony.example.com/app/cache/dev/appDevDebugProjectContainer.php on line 2096 and defined in /var/www/vhosts/symfony.example.com/vendor/nelmio/solarium-bundle/Nelmio/SolariumBundle/Logger.php line 44

Немного покопавшись, я нашел эту статью, в которой говорится:

Монолог недавно реализовал ПСР-3. Поэтому известно о реализации Psr\Log\LoggerInterface и связанных с ним рекомендаций, которые можно найти в документе PSR-3.

Итак, теперь я пытаюсь обновить свою версию MonoLog и получаю следующую ошибку в композиторе, и я не знаю, куда идти дальше:

Ваши требования не могут быть разрешены для устанавливаемого набора пакетов.

Problem 1
- Installation request for symfony/monolog-bundle 2.2.* -> satisfiable by symfony/monolog-bundle v2.2.0.
- Conclusion: remove symfony/symfony v2.1.9
- symfony/monolog-bundle v2.2.0 requires symfony/monolog-bridge >=2.2-beta2,<3.0 -> satisfiable by symfony/symfony v2.2.0, symfony/symfony v2.2.1, symfony/monolog-bridge v2.2.0, symfony/monolog-bridge v2.2.1.
- Can only install one of: symfony/symfony v2.2.0, symfony/symfony v2.1.9.
- Can only install one of: symfony/symfony v2.2.1, symfony/symfony v2.1.9.
- don't install symfony/monolog-bridge v2.2.0|don't install symfony/symfony v2.1.9
- don't install symfony/monolog-bridge v2.2.1|don't install symfony/symfony v2.1.9
- Installation request for symfony/symfony == 2.1.9.0 -> satisfiable by symfony/symfony v2.1.9.

Нужно ли мне полностью обновлять версию Symfony 2, чтобы она заработала?


person Joseph Woodward    schedule 07.04.2013    source источник


Ответы (1)


К сожалению, из-за нового интерфейса и т. д. было невозможно поддерживать работу в обоих случаях. Таким образом, для использования Monolog 1.4+ необходимы Symfony 2.2+ и MonologBundle 2.2+.

Тем не менее, кажется, что это ошибка в комплекте, который требует PSR LoggerInterface, потому что старый интерфейс Symfony также совместим. Я только что отправил пакет v2.0.1, если вы хотите обновить и посмотреть, работает ли это (вы можете отменить изменения в требованиях monolog).

person Seldaek    schedule 07.04.2013
comment
Я понимаю. Откатился на ветку 1.х и все работает как надо. Двигаясь вперед, я собираюсь перейти на 2.2+, так как проект, над которым я работаю, все еще находится на ранних стадиях разработки. Отличный паблик кстати! - person Joseph Woodward; 07.04.2013