У меня есть проект Zend с большим количеством контроллеров и действий с использованием методаКак избежать повторения строк в методах перенаправления Zend?
$this->_redirect('/controller_name/action_name');
перенаправление на другие действия, после обработки данных. Я заметил, что это создает множество «магических строк», которые наносят ущерб принципу DRY: если я изменю контроллер или имя действия, мне придется изменить этот код перенаправления во всех действиях, которые его используют. Я хотел бы знать, есть ли лучший способ в Zend, чтобы избежать этого. Я думал о создании констант для всех контроллеров и названий действий, например:
$this->_redirect(HOME_CONTROLLER_INDEX);
Но я думаю, что этот подход не очень хорошо. Есть ли лучшее решение?
Не могли бы вы объяснить, почему вы не хотите использовать 'Определить()'? Это кажется довольно хорошей идеей. – jprofitt
Я думаю, что это загрязнило бы пространство имен со слишком большим количеством констант, больше, чем оно уже есть. – Karlisson
Если не определяет, то некоторые расширяются, я бы сказал. Расширьте либо контроллер (не рекомендуется), либо создайте помощник действий (вам придется переписать много ваших текущих перенаправлений), которые будут принимать строковый ключ (например, «HOME_CONTROLLER_INDEX'), а затем использовать его внутреннюю таблицу поиска, чтобы увидеть, какой URL-адрес это должно быть перенаправлено. Вам нужно будет только поддерживать и обновлять таблицу поиска. – bububaba