问题
after updating symfony from 2.3
to 2.4
i got ServiceNotFoundException
Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException' with message 'The service "monolog.handler.mojhandler" has a dependency on a non-existent service "swiftmailer.transport.real".' in E:\wamp\www\project\vendor\symfony\symfony\src\Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass.php on line 59
here is my config_prod.yml
imports:
- { resource: config.yml }
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: streamed
streamed:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
mail:
type: fingers_crossed
action_level: error
handler: buffered
channels: ["!app"] # Dont log app because we dont' want 404 errors sending
buffered:
type: buffer
handler: mojhandler
mojhandler:
type: swift_mailer
from_email: %mojhandler_logger_email%
to_email: %mojhandler_logger_email%
subject: "[Panel] An Error Occurred!"
level: debug
and here is my swiftmailer configuration from config.yml
# Swiftmailer Configuration
swiftmailer:
transport: %mailer_transport%
host: %mailer_host%
username: %mailer_user%
password: %mailer_password%
port: %mailer_port%
auth_mode: %mailer_auth_mode%
encryption: %mailer_encryption%
how can i fix it?
回答1:
It appears to be an error when upgrading to Monolog Bundle 2.5.0 that causes this if you do not have the 'spool' config value set under the swiftmailer configuration.
回答2:
It seems indeed to be a bug if we dont set the 'spool' config value in the swiftmailer config.
To solve this I had to create the missing services myself (since I don't want to use spool) in one of my services.yml:
swiftmailer.transport.simplemailinvoker:
class: Swift_Transport_SimpleMailInvoker
swiftmailer.transport.eventdispatcher:
class: Swift_Events_SimpleEventDispatcher
swiftmailer.transport.real:
class: Swift_Transport_MailTransport
arguments: [@swiftmailer.transport.simplemailinvoker, @swiftmailer.transport.eventdispatcher]
来源:https://stackoverflow.com/questions/21074756/symfony2-monolog-to-email-errors-why-swiftmailer-transport-real-is-non-existent