2008-12-18 3 views
1

Я разрабатываю веб-приложение с использованием рамки zend. Мне нравится, как все автозагрузка работает, однако мне не очень нравится, как Zend_Controller по умолчанию указывает на контроллеры. Я ищу способ заставить zend_controller понять мой класс контроллера с именем Controller_User, хранящийся в {$ app} /Controller/User.php. В любом случае, я могу сделать это с меньшим количеством дополнительного кода?Zend_Controller После соглашения об именах PEAR

ответ

0

подклассов диспетчер (цитата из http://cslai.coolsilon.com/2009/03/28/extending-zend-framework/)

class Coolsilon_Controller_Dispatcher 
    extends Zend_Controller_Dispatcher_Standard { 
    public function __construct() { 
     parent::__construct(); 
    } 

    public function formatControllerName($unformatted) { 
     return sprintf( 
      'Controller_%s', ucfirst($this->_formatName($unformatted)) 
     ); 
    } 

    public function formatActionName($unformatted) { 
     $formatted = $this->_formatName($unformatted, true); 
     return strtolower(substr($formatted, 0, 1)) . substr($formatted, 1); 
    } 
} 
2

Это, конечно, не пошаговый ответ, но я считаю, что вы можете выполнить то, что хотите, путем подкласса стандартного класса диспетчера и внести несколько изменений в функции, связанные с каталогом контроллера и объектами контроллера. ZF Ref Guide - Subclassing Dispatcher