我正在尝试使用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=******')
]
]
]);
答案 0 :(得分:0)
在phalcon 3.0中添加了一个名为loadFile
的phalcon加载器的新方法。只需将其与swift_required.php
路径
答案 1 :(得分:0)
现在我了解Phalcon孵化器的工作原理。如果某人安装了没有作曲家的孵化器,必须考虑孵化器中的某些库需要外部库。因此,如果通过克隆Github存储库来安装Incubator并且不执行composer update,则必须逐个加载外部库的所有依赖项。