实现可配置的工厂

时间:2010-04-20 09:14:21

标签: php configuration factory

我很难找到如何在PHP的工厂类中实现“可配置”行为。

我已经上课了,它在构造函数中将另一个类作为参数。 参数类可以在其构造函数中使用许多参数。我的主类的一个实例可能看起来像这样

$instance = new MyClass(new OtherClass(20, true));
$instance2 = new MyClass(new DifferentClass('test'));

这是相当笨拙的,并且有很多问题因此我想把它变成工厂类。 问题是这个工厂需要知道如何实例化参数类,因为这个类在构造函数中可以有任意数量的参数。

我希望能够做到这样的事情

$instance = Factory::build('OtherClass');
$instance2 = Factory::build('DifferentClass');

让工厂从配置数组或类似数据中检索参数。

1 个答案:

答案 0 :(得分:1)

如果将类列表及其构造函数参数存储为数组。类似的东西:

array(
    'OtherClass' => array(20, true),
)

然后,您可以使用reflection apinewInstanceArgs函数构建类。