0

我正在使用具有以下配置的 php-di 库。

<?php

use function DI\create;
use function DI\get;

return [
    //'\App\Auth\User' => '\App\Auth\User',
    'Database' => create()
        ->constructor(get('\App\DB\MySql')),
];

在我的用户类中,我试图注入数据库:

public function __construct(\Database $database)
{
    $database->query('test');
}

这是我从中得到的错误:

致命错误:未捕获的 DI\Definition\Exception\InvalidDefinition:无法解析条目“\App\Auth\User”:无法解析条目“数据库”:类不存在完整定义:对象(类 = #UNKNOWN# 数据库lazy = false ) 完整定义: /var/www/html/user-acl/vendor/php-di/php 中的对象 ( class = \App\Auth\User lazy = false __construct( $database = get(Database) ) ) -di/src/Definition/Exception/InvalidDefinition.php:19 堆栈跟踪:#0 /var/www/html/user-acl/vendor/php-di/php-di/src/Definition/Resolver/ObjectCreator.php( 156): DI\Definition\Exception\InvalidDefinition::create(Object(DI\Definition\ObjectDefinition), 'Entry "\App\Aut...') #1 /var/www/html/user-acl/vendor/ php-di/php-di/src/Definition/Resolver/ObjectCreator.php(71): DI\Definition\Resolver\ObjectCreator->createInstance(Object(DI\Definition\ObjectDefinition), Array) #2 /var/www/html/user-acl/vendor/php-di/php-di/src/Definition/Resolver/ResolverDispatcher.php(71): DI \Definition\Resolver\ObjectCreator->resolve(第 19 行 /var/www/html/user-acl/vendor/php-di/php-di/src/Definition/Exception/InvalidDefinition.php 中的对象

如果我这样做,它工作正常:

public function __construct(\App\DB\MySql $database)
{
    $database->query('test');
}

我觉得我在这里错过了一些东西。提前致谢!

4

0 回答 0