我目前正在使用PHP构建一个小项目,而不使用任何静态方法或全局状态。
我的班级'构造函数目前看起来有点像这样,我只是在创建对象实例时注入依赖对象。
class Something {
public function __construct(Name\Space\Object $object, Other\Name\Space $object2)
{
# Assign properties here
}
}
在我的一个应用程序类中,我需要通过调用其方法来创建各种对象的新实例。有点像下面的东西;
class Something {
public function getNewObject()
{
return new Name\Space\Object();
}
public function getNewObject2()
{
return new Name\Space\ObjectTwo();
}
}
这是如何在遵守标准依赖注入规则的情况下完成的?
我不确定如何将对象注入构造函数,然后我只有一个实例,而我的应用程序中可能需要很多实例?
谢谢,
答案 0 :(得分:0)
我相信函数是PHP中的第一类对象,所以这应该有效:
<?php
class MyClass {
function foo() {
return 'foo';
}
};
class MyOtherClass {
function __construct($klass) {
$this->klass = $klass;
}
function get_instance() {
return new $this->klass();
}
}
$factory = new MyOtherClass(MyClass);
$obj = $factory->get_instance();
?>
// <h1> value should equal foo
<h1><?php echo $obj->foo();?></h1>
编辑:测试并运作。