我使用composer在一个新的自定义项目中安装了php-di 4.4。我用php 5.6.3运行一个xampp localhost,但我在这个项目上为php 5.4设置了netbeans。我是php-di的新手,我确实在我的android项目中使用了注释,但似乎不能让它在这里工作。代码很简单,我正在测试注入看看它是如何工作的,下面是代码:
// composer autoload
require_once __DIR__ . '/vendor/autoload.php';
// injection entry point
$builder = new DIContainerBuilder();
$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();
是我得到的错误:在D:Projectsprofitest.php第27行
这是基本的实现,我不明白为什么它不注入。
提前感谢。
PHP-DI不能神奇地拦截当你创建B(注入A到B),你必须使用PHP-DI创建B:
$b = $container->get('ClassB');
$b->methodB();