国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

自定義構(gòu)造函數(shù)注入之debug啟動修改依賴注入類邏輯并不走熱更新情況

taozywu

先提條件:

  1. webman1.4

  2. 自定義構(gòu)造函數(shù)注入

  3. debug模式啟動

  4. 配置按照手冊配置如下

    return [
    // ... 這里忽略了其它配置
    
    app\test\service\Mailer::class =>  new app\test\service\Mailer('192.168.1.11', 25);
    ];
  5. 嘗試在依賴注入類中修改如下

<?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)可以采用幾個辦法來處理

  1. 自定義接口注入直接解決,省略不具體描述了
  2. 自定義構(gòu)造函數(shù)注入方式下修改配置如下
return [
    // ... 這里忽略了其它配置
    app\test\service\Mailer::class =>  function () {
        return new app\test\service\Mailer('192.168.1.11', 25);
    }
]

當然如上寫法也是借鑒了自定義接口注入對應(yīng)的配置寫法,目前訪問正常!未去深入挖掘,暫不清楚有無bug。

===
以上也請各位嘗試排查一下!

1146 1 0
1個回答

taozywu

通過查閱php-di手冊

  1. 也可以使用如下配置
<?php
return [
    app\test\service\Mailer::class => DI\autowire()
        ->constructorParameter('smtp_host', '192.168.1.11')
        ->constructorParameter('smtp_port', 25),
];
  • 暫無評論
年代過于久遠,無法發(fā)表回答
??