按照文档写依赖注入,在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时不限制版本号可以引入,但都不能正常使用。
$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);
找不对对应的类。
mac环境 webman2.1版本
php-di/php-di 从 v7后用法不一样了,v7用的php自带的注解。
手册里是v6的用法。