我仍然是
PHP OO编程技术的新手,我有一个非常简单的广泛问题,在类中实例化一个类然后将该实例传递给另一个类通常是不好的做法吗?
我想要的是能够创建一个特定类的实例,我知道我将始终需要通过每个用户请求.第二类不仅仅是一个帮助类,理想情况下,在我的应用程序中,它将是一个加载视图的“加载器”.
调用其他两个类的第一类:
require 'classTwo.PHP'; require 'classThree.PHP'; class first { public $classTwo,$classThree; public function __construct() { $this -> classTwo = new classTwo; $this -> classThree = new classThree; $this -> classThree -> displayNum( $this -> classTwo ); } }
辅助类的第二类:
class classTwo { public function returnVal() { return 123; } }
第三类是实际工作和最终显示将发生的动作类:
class classThree { public function displayNum( $instance ) { echo $instance -> returnVal(); } }
总的来说,我只是想知道这是不好的做法,因为我以前从未见过它.
提前致谢!
注入任何依赖对象是一种好习惯,因为这样可以在单元测试期间轻松模拟.
一般来说,如果你有ClassA并且它依赖于ClassB的一个实例来运行那么你可以做类似的事情.
$objectB = new ClassB(); $objectA = new ClassA($objectB);
看看http://net.tutsplus.com/tutorials/php/dependency-injection-in-php/
编辑:构造函数注入将依赖项传递给新对象的构造函数(如上所示).
Setter注入使用一种方法来设置依赖关系,通常在依赖关系不重要时使用:
$objectB = new ClassB(); $objectA = new ClassA(); $objectA->setObjectB($objectB);