PHP-DI 注释不起作用

PHP-DI annotation not working

我在一个新的自定义项目中安装了 php-di 4.4,使用 composer.Im 运行 xampp 本地主机和 php 5.6.3,但我为 php 5.4 关于这个项目。我是 php-di 的新手,我确实在我的 android 项目中使用了注释,但似乎无法让它在这里工作。代码很简单,我正在测试注入以查看其工作原理,这是代码:

// composer autoload
require_once __DIR__ . '/vendor/autoload.php';

// injection entry point
$builder = new DI\ContainerBuilder();
$container = $builder->build();

class ClassA
{
    public function methodA()
    {
        echo 'methodA';
    }
}
class ClassB
{
    /**
     * @Inject
     * @var ClassA
     */
    public $param;

    public function methodB()
    {
        $this->param->methodA();
    }
}

$b = new ClassB();
$b->methodB();

这是我得到的错误: 在第 27 行

中 D:\Projects\profi\test.php 中的 null 上调用成员函数 methodA()

基本的实现,不明白为什么不注入

提前谢谢你。

PHP-DI 在创建 B 时无法神奇拦截(将 A 注入 B)。您必须使用 PHP-DI:

创建 B
$b = $container->get('ClassB');
$b->methodB();