Я думаю, что если бы вы создали статический класс или одноэлементный класс, вы могли бы получить все желаемые функциональные возможности, не нарушая структуру MVC вообще.
Рассмотрим следующий простой класс с одной статической функцией:
<?php
class My_DebugHelper
{
public static function dump()
{
$ns = new Zend_Session_Namespace('the_namespace'); // the namespace you refer to with the developer flag
$debug_mode = Zend_Registry::get('debug_mode');
if (!isset($ns->isDeveloper) || !$ns->isDeveloper || !$debug_mode) {
return;
}
foreach(func_get_args() as $arg) {
Zend_Debug::dump($arg);
}
}
protected function __construct() {}
protected function __clone() {}
}
Этот код дает вам:
- Возможность звонить из любого места в вашем приложении (модель, контроллер, помощник, просмотр и т. Д.)
- Все средства защиты, предотвращающие его выполнение при вызове вне контекста
- Простая база, на которую вы можете расширить
В зависимости от ваших потребностей, по крайней мере, одна вещь, которую вы можете сделать, это сделать ее статической, чтобы она могла хранить некоторую информацию вместо того, чтобы обращаться к ней при каждом вызове, или добавлять дополнительные методы или специализированные параметры, чтобы вы могли передавать объект Zend_View
к нему, если необходимо, и данные вводятся в представление.
Вы можете вызвать его из любого места в вашем приложении и передать одно или несколько значений в dump:
My_DebugHelper::dump($someVar, $this->view, $model->getCustId());
Я не уверен, как / что ваш помощник вида отображает в настоящее время, но, надеюсь, это поможет вам объединить ваш помощник вида с общим классом, который вы можете вызывать где угодно.