8.x版本的依赖注入问题

康康

问题描述

按照文档写依赖注入,在php8.2、php8.3、php8.4上都去引入composer

composer require psr/container ^1.1.1 php-di/php-di ^6.3 doctrine/annotations ^1.14

在php8.2、php8.3可以引入,php8.4时不限制版本号可以引入,但都不能正常使用。

修改container.php

$builder = new \DI\ContainerBuilder();
$builder->addDefinitions(config('dependence', []));
$builder->useAutowiring(true);
$builder->useAnnotations(true);
return $builder->build();

其中$builder->useAnnotations(true);已经找不到声明。

代码中引入并使用

    /**
     * @Inject
     * @var AccountLoginValidate
     */
    private $accountLoginValidate;

$this->accountLoginValidate->check($params);
找不对对应的类。

操作系统及workerman/webman等框架组件具体版本

mac环境 webman2.1版本

108 1 0
1个回答

php-di/php-di 从 v7后用法不一样了,v7用的php自带的注解。
手册里是v6的用法。

  • 暂无评论
×
🔝