Swift_SmtpTransport 法尔康

Swift_SmtpTransport phalcon

我正在尝试使用依赖注入器在 Phalcon 3 上加载 SwiftMailer,但我收到有关 Swift_transporter 服务的错​​误。

Phalcon\Di\Exception: Service '\Swift_SmtpTransport' wasn't found in the dependency injection container

我想知道如何在依赖项注入器中加载 Swift_SmtpTransport 服务,无需 composer。我知道composer可以轻松解决这个问题,但我想知道是否有其他选择。

在我的 service.php 文件中,我添加了下一行:

$di->set('mailer', function(){

$mailer = new Manager([
    'driver'   => 'sendmail',
    'sendmail' => '/usr/sbin/sendmail -bs',
    'viewsDir' => $this->config->application->viewsDir . 'emails/',
    'from'     => [
        'email' => 'notify@website.com',
        'name'  => 'Company Team'
    ]
]);

return $mailer;

});

然后我用下一行调用服务:

$this->mailer([
        'to'      => 'email@test.com',
        'name'    => 'First and Last Name',
        'subject' => _('Welcome to my website'),
        'body'    => [
            'view'   => 'welcome',
            'params' => [
                'name' => 'First Name',
                'link' => $this->url->get('users/activate/?email=email@test.com&activation_key=******')
            ]
        ]
    ]);

在 phalcon 3.0 中添加了名为 loadFile 的 phalcon 加载器的新方法。只需将它与 swift_required.php 路径

一起使用

现在我了解了 Phalcon 孵化器的工作原理。如果有人安装了没有 composer 的孵化器,必须考虑孵化器中的某些库需要外部库。因此,如果您通过克隆 Github 存储库来安装 Incubator,并且不执行 composer update,则必须一一加载外部库的所有依赖项。