Symfony3 - SwiftMailer:不存在的参数 "mailer_encryption"

Symfony3 - SwiftMailer : non-existent parameter "mailer_encryption"

我的应用程序在 Symfony 3.2.4 和 PHP 5.6.28

一切都是最新的: 我的 SwiftMailer 版本:

symfony/swiftmailer-bundle (v2.5.4)

当我阅读官方文档时,它写道我可以像这样为 SwiftMailer 添加参数:

config.yml

swiftmailer:
    transport: "%mailer_transport%"
    host:      "%mailer_host%"
    username:  "%mailer_user%"
    password:  "%mailer_password%"
    encryption: "%mailer_encryption%"
    port:    "%mailer_port%"
    spool:     { type: memory }
    logging: true

parameters.yml

parameters:
    database_host: localhost
    database_port: null
    database_name: BASE
    database_user: root
    database_password: root
    mailer_host: smtp-relay._.com
    mailer_port: 587
    mailer_transport: smtp
    mailer_encryption: tls
    mailer_user: -
    mailer_password: -
    secret: -

但是当我 运行 a "composer update" 我总是得到同样的错误:

[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException] You have requested a non-existent parameter "mailer_encryption"

我必须在 config.yml 中评论 "encryption" 和 "port",然后再做一次 "composer update"。

这是 SwiftMailer Bundle 的正常行为?有人可以帮助我吗?

我正在使用 FOSuser。

一周前我是这样解决的:

# Swiftmailer Configuration
swiftmailer:
    transport: "%mailer_transport%"
    host:      "%mailer_host%"
    username:  "%mailer_user%"
    password:  "%mailer_password%"
    encryption: tls
    port:    587
    spool:     { type: memory }
    logging: true

如果有人再次遇到此问题,那是因为在更新时,作曲家会查看用作模板的 parameters.yml.dist,如果您在 parameters.yml 中有模板中不存在的参数他们将被删除。

因此在 parameters.yml.dist 中您必须添加字段:

paremeters:
    ....
    mailer_transport:  smtp
    mailer_host:       127.0.0.1
    mailer_encryption: ~ (<!-- this line was added -->)
    mailer_user:       ~
    mailer_password:   ~
    ...

然后您可以像以前一样在 parameters.yml 中添加值并在 config.yml

中使用它
swiftmailer:
    transport:  "%mailer_transport%"
    host:       "%mailer_host%"
    username:   "%mailer_user%"
    password:   "%mailer_password%"
    encryption: "%mailer_encryption%"  (<!-- like this -->)
    port:       587    
    spool:      { type: memory }
    logging:    true

同样适用于端口