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

webman在php8自動(dòng)注入initialization報(bào)錯(cuò)

dsx5ds

問題描述

已根據(jù)webman文檔和php-di 7.0都做了修改
通過路由定義

Route::any('/test',[app\controller\Index\IndexController::class, 'index']);

訪問/test正??梢宰⑷雜ervice,但是如果是閉包路由則報(bào)錯(cuò)無法初始化service

猜測(cè)原因可能是index入口是從route的閉包中直接輸出,而不是走正常的流程導(dǎo)致bug,請(qǐng)各位知道

程序代碼

#config/container.php
$builder = new \DI\ContainerBuilder();
$builder->addDefinitions(config('dependence', []));
$builder->useAutowiring(true);
$builder->useAttributes(true);
return $builder->build();

#IndexController.php
use DI\Attribute\Inject;
use app\service\CService;

class IndexController extends BaseController
{
    #[Inject]
    private CService $service;

    public function index(Request $request)
    {
      return $this->service->getList();
    }
}

報(bào)錯(cuò)信息

Error: Typed property app\controller\Index\IndexController::$service must not be accessed before initialization in /data/webman/app/controller/Index/IndexController.php:26
Stack trace:
#0 /data/webman/config/route.php(54): app\controller\Index\IndexController->index()
#1 /data/webman/vendor/workerman/webman-framework/src/App.php(388): Webman\Route::{closure}()
#2 /data/webman/vendor/workerman/webman-framework/src/App.php(349): Webman\App::Webman\{closure}()
#3 /data/webman/app/middleware/Auth.php(33): Webman\App::Webman\{closure}()
#4 /data/webman/vendor/workerman/webman-framework/src/App.php(341): app\middleware\Auth->process()
#5 /data/webman/vendor/workerman/webman-framework/src/App.php(560): Webman\App::Webman\{closure}()
#6 /data/webman/vendor/workerman/webman-framework/src/App.php(148): Webman\App::findRoute()
#7 /data/webman/vendor/workerman/workerman/Connection/TcpConnection.php(646): Webman\App->onMessage()
#8 /data/webman/vendor/workerman/workerman/Events/Select.php(311): Workerman\Connection\TcpConnection->baseRead()
#9 /data/webman/vendor/workerman/workerman/Worker.php(1638): Workerman\Events\Select->loop()
#10 /data/webman/vendor/workerman/workerman/Worker.php(1429): Workerman\Worker::forkOneWorkerForLinux()
#11 /data/webman/vendor/workerman/workerman/Worker.php(1403): Workerman\Worker::forkWorkersForLinux()
#12 /data/webman/vendor/workerman/workerman/Worker.php(1788): Workerman\Worker::forkWorkers()
#13 /data/webman/vendor/workerman/workerman/Worker.php(1724): Workerman\Worker::monitorWorkersForLinux()
#14 /data/webman/vendor/workerman/workerman/Worker.php(562): Workerman\Worker::monitorWorkers()
#15 /data/webman/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
#16 /data/webman/start.php(4): support\App::run()
#17 {main}

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

"require": {
"php": ">=7.2",
"workerman/webman-framework": "^1.5.0",
"monolog/monolog": "^2.0",
"webman/admin": "^0.6.24",
"illuminate/redis": "^9.52",
"illuminate/events": "^9.52",
"webman/think-cache": "^1.0",
"topthink/think-template": "^3.0",
"psr/container": "^2.0",
"php-di/php-di": "7.0.0-rc1",
"doctrine/annotations": "^2.0",
"vlucas/phpdotenv": "^5.5",
"illuminate/pagination": "^9.52"
},

1047 1 0
1個(gè)回答

walkor 打賞

貼閉包路由代碼

  • dsx5ds 2024-03-12

    已解決 看你的帖子控制器需要用Container而不是new

年代過于久遠(yuǎn),無法發(fā)表回答
??