先提条件:
webman1.4
自定义构造函数注入
debug模式启动
配置按照手册配置如下
return [
// ... 这里忽略了其它配置
app\test\service\Mailer::class => new app\test\service\Mailer('192.168.1.11', 25);
];
尝试在依赖注入类中修改如下
<?php
namespace app\test\service;
class Mailer
{
private $smtpHost;
private $smtpPort;
public function __construct($smtp_host, $smtp_port)
{
$this->smtpHost = $smtp_host;
$this->smtpPort = $smtp_port;
}
public function mail($email, $content)
{
// 发送邮件代码省略
// 试错如下 随意改下返回
//return $this->smtpHost."=AAAA=".$this->smtpPort."=".$email;
return $this->smtpHost."=WWWW=".$this->smtpPort."=".$email;
}
}
6.浏览器访问发现返回值并未及时更新,只有将服务重启动才会更新
===
再反复尝试了很多次问题依旧,后发现可以采用几个办法来处理
return [
// ... 这里忽略了其它配置
app\test\service\Mailer::class => function () {
return new app\test\service\Mailer('192.168.1.11', 25);
}
]
当然如上写法也是借鉴了自定义接口注入对应的配置写法,目前访问正常!未去深入挖掘,暂不清楚有无bug。
===
以上也请各位尝试排查一下!
通过查阅php-di手册