【发布时间】:2012-03-10 02:05:39
【问题描述】:
如何实现:
<?php
class MyClass1
{
public function __construct(MyClass2 $objClass2)
{
$this->objClass2 = $objClass2;
}
}
class MyClass2
{
public function setClass1(MyClass1 $objClass1)
{
$this->objClass1 = $objClass1;
}
}
?>
我的意思是我需要创建一个MyClass2 对象,将其放入MyClass1 构造函数中,然后我需要将MyClass1 对象放入之前通过setClass1 方法创建的MyClass2 对象中。 ZendFramework 的 DI config 可以做吗?
【问题讨论】:
-
这听起来很恐怖。问题应该是,如何避免循环依赖。
-
@markus 例如,有Mother 和Child 类。孩子认识他/她的母亲,母亲也认识她的孩子。这种情况下如何避免循环依赖?
-
现实世界的类比不是反模式的论据。告诉我一个真正的编程必要性,我会告诉你如何更好地解决它。
-
@markus-tharkun 例如,论坛脚本。我有带有方法getPost 的PostsRepository 类和带有方法getUserProfileInfo 的UsersRepository 类。这些方法应该返回包含所有必要数据的对象:帖子应该有作者(用户对象),而 ProfileInfo 应该有帖子数。所以,PostRepository 和 UsersRepository 应该有相互链接。
标签: php zend-framework frameworks dependency-injection zend-framework2