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();
我在一个新的自定义项目中安装了 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();