Как насчет фабричного / сервисного класса, настроенного с вашими префиксами / путями по умолчанию и по умолчанию, чья работа заключается в создании запрошенной формы.Задачей этого фабричного класса было бы сначала проверить наличие настраиваемой формы и вернуться к форме по умолчанию.
Таким образом, у вас могут быть формы по умолчанию с именем вроде My_Form_Default_User
, появляющиеся в application/forms/default
, а ваши формы по умолчанию с именем что-то вроде My_Form_Custom_User
, появляющиеся в application/forms/custom
.Тогда клиентский код может вызывать что-то вроде My_FormFactory::createForm('user')
.
. Альтернативой может быть присвоение формам одинаковых имен (например, My_Form_User
) для обоих случаев, но затем настройка автозагрузчика с путями к обоим местоположениям.Если автозагрузчик находит пользовательскую форму, круто.Если нет, он возвращается к местоположению по умолчанию.Но такой подход мне кажется немного более умным.