Swift_SmtpTransport phalcon

时间:2016-10-23 13:54:06

标签: php dependency-injection phalcon swiftmailer

我正在尝试使用Dependency Injector在Phalcon 3上加载SwiftMailer,我收到有关Swift_transporter服务的错误。

  

Phalcon \ Di \ Exception:在依赖项注入容器中找不到服务'\ Swift_SmtpTransport'

我想知道如何在依赖注入器中加载Swift_SmtpTransport服务,不使用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=******')
            ]
        ]
    ]);

2 个答案:

答案 0 :(得分:0)

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

一起使用即可

答案 1 :(得分:0)

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