0

read meに従って Symfony 2 アプリケーションにNelmioSolariumBundleをインストールしようとしていますが、バンドルを登録した後、次のエラーが表示されます。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

少し掘り下げた後、次のような記事を見つけました。

Monolog は最近 PSR-3 を実装しました。したがって、PSR-3 ドキュメントにある Psr\Log\LoggerInterface とそれに関連するガイドラインを実装することが知られています。

そのため、MonoLog のバージョンを更新しようとしていますが、composer 内で次のエラーを受け取り、ここからどこに移動すればよいかわかりません。

お客様の要件は、インストール可能な一連のパッケージに解決できませんでした。

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 のバージョンを機能させるには、完全に更新する必要がありますか?

4

1 に答える 1

3

残念ながら、新しいインターフェースなどにより、両方のケースで機能し続けることはできませんでした。そのため、Monolog 1.4+ を使用するには、Symfony 2.2+ と MonologBu​​ndle 2.2+ が必要です。

とは言っても、Symfony の古いインターフェースも互換性があるため、PSR LoggerInterface を必要とするのはバンドルのバグのようです。更新して動作するかどうかを確認したい場合は、バンドルの v2.0.1 をプッシュしました (モノログの要件への変更をロールバックできます)。

于 2013-04-07T10:24:01.637 に答える