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

Event事件里無法使用依賴注入

lveven

問題描述

Event事件處理類里無法使用依賴注入, 然而把這個依賴注入放在controller下就能正常訪問

程序代碼

# 事件注冊
\plugin\foo\config\event.php
    return [
        'user.register' => [
            [\plugin\foo\app\event\User::class, 'register'],
        ]
    ];

# 需要被注入依賴的類
\plugin\foo\app\service\FooService.php
    class FooService {

        public function test() {
            var_dump("----------------");
        }

    }

# 事件處理類
\plugin\foo\app\event\User.php
    class User
    {
        /**
         * @Inject
         * @var FooService
         */
        protected $fooService;

        /**
         * 用戶注冊成功后的事件
         * @param array $user 用戶信息
         * @return void
        */
        public function register(array $user)
        {
            var_dump("用戶注冊callback");
            $this->fooService->test();   //這里的$this->fooService 為空
        }
    }

# 正常訪問
\plugin\foo\app\controller\UserController.php
    class UserController
    {
        /**
         * @Inject
         * @var FooService
         */
        protected $fooService;

        public function index(Request $request) {
            $this->fooService->test();   //這里就可以正常執(zhí)行
        }

    }

報錯信息

Call to a member function test() on null

操作系統(tǒng)及workerman/webman等框架組件具體版本

    "php": ">=7.2",
    "workerman/webman-framework": "^1.5.0",
    "monolog/monolog": "^2.0",
    "webman/gateway-worker": "^1.0",
    "webman/console": "^1.3",
    "webman/admin": "^0.6.24",
    "phpmailer/phpmailer": "^6.9",
    "illuminate/events": "^8.83",
    "tinywan/jwt": "^1.6",
    "psr/container": "^1.1.1",
    "php-di/php-di": "^6",
    "doctrine/annotations": "^1.14",
    "topthink/think-validate": "^2.0",
    "illuminate/redis": "^8.2.0",
    "symfony/cache": "^5.2",
    "webman/event": "^1.0"
725 0 0
0個回答

??