先提條件:
webman1.4
自定義構(gòu)造函數(shù)注入
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)
{
// 發(fā)送郵件代碼省略
// 試錯如下 隨意改下返回
//return $this->smtpHost."=AAAA=".$this->smtpPort."=".$email;
return $this->smtpHost."=WWWW=".$this->smtpPort."=".$email;
}
}
6.瀏覽器訪問發(fā)現(xiàn)返回值并未及時更新,只有將服務(wù)重啟動才會更新
===
再反復嘗試了很多次問題依舊,后發(fā)現(xiàn)可以采用幾個辦法來處理
return [
// ... 這里忽略了其它配置
app\test\service\Mailer::class => function () {
return new app\test\service\Mailer('192.168.1.11', 25);
}
]
當然如上寫法也是借鑒了自定義接口注入對應(yīng)的配置寫法,目前訪問正常!未去深入挖掘,暫不清楚有無bug。
===
以上也請各位嘗試排查一下!
通過查閱php-di手冊
<?php
return [
app\test\service\Mailer::class => DI\autowire()
->constructorParameter('smtp_host', '192.168.1.11')
->constructorParameter('smtp_port', 25),
];