Zend Framework 1.10 Переопределить вызов класса? - PullRequest
0 голосов
/ 27 апреля 2011

Я думаю, что я пытаюсь быть слишком умным. Если это работает, ура. Если нет, не беспокойтесь.

Я хочу, чтобы мое приложение было максимально модульным. На данный момент у меня есть только модуль продуктов, но я знаю по своему опыту, что мне может понадобиться и модуль категорий, в котором продукты будут дочерними. Пока модуль категорий не существует, я хочу, чтобы, например, для Products_Forms_NewProduct были загружены формы . Когда модуль категорий помещается в приложение, я хочу, чтобы он автоматически обнаруживался и переадресовывал любые вызовы, например, для Products_Forms_NewProduct на Categories_Forms_NewProduct.

Как мне это сделать?

1 Ответ

2 голосов
/ 27 апреля 2011

Вы ищете инъекцию зависимости 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());
}
...