0

我想我试图变得过于聪明。如果它有效,是的。如果没有,不用担心。

我希望我的应用程序尽可能模块化。目前我只有一个产品模块,但根据经验,我知道我可能还想要一个类别模块,其中产品将是子模块。虽然类别模块不存在,但我希望调用 Products_Forms_NewProduct 来加载表单。当类别模块被放入应用程序时,我希望它被自动检测并转发任何调用,例如,Products_Forms_NewProduct 到 Categories_Forms_NewProduct。

我该怎么做?

4

1 回答 1

2

您正在寻找依赖注入 IMO。但我建议有一个可以适当修改表单的类。就像一个表单插件。这不是扩展的情况,而是组合的情况。我会在这些方面做一些事情:

// say in Form_NewProduct's init()
$this->addPlugin(new Form_Plugin_Category());
$this->addSubform(new Form_NewProduct_ProductSubform());

//in plugin or in form directly
if (class_exists('Form_NewProduct_CategorySubform')) {
    $this->_form->addSubform(new Form_NewProduct_CategorySubform());
}
于 2011-04-27T19:09:10.457 回答