Создание MVC в Zend Framework вручную

Рейтинг: 1Ответов: 1Опубликовано: 23.12.2014

Добрый день!

Вынужденно изучаю Zend Framework. Переделываю сайт, написанный то ли на Zend с нарушением структуры Zend приложения, то ли Zend тут используется в качестве доп. библиотеки, а всё остальное написано на голом php, пока не понял. В общем, структура сайта несколько отличается от той, что создаёт Zend Tools при создании проекта. Т.к. проект на хостинге, воспользоваться консолью и создать необходимые представления и экшины не могу. Пытаюсь создать экшн вручную, зашёл в AdminController модуля и добавил туда пустой экшн propertyAction http://joxi.ru/RmzXw4ohj54LAO , а в папке view/scripts/admin/ создал пустой файл представления для данного экшина property.phtml , обращаюсь в админке по соответствующему адресу, ...backend/kitchen/property - получаю 404 ошибку.

Может, Zend Tools делает что-то ещё, для того чтобы определённый action увидел свой View? Не найду ничего в доках (на русском по крайней мере), везде описывают работу через Zend Tools.

Ответы

▲ 1

Нашёл роуты:

class Admin_Bootstrap extends Zend_Application_Module_Bootstrap {

    public function _initPlugins() {
        $front = Zend_Controller_Front::getInstance ();
        if(Zend_Registry::get('cnf')->installed==true){
            $front->registerPlugin ( new Zen_Controller_Plugin_Auth());
            $front->registerPlugin ( new Admin_Plugin_Bar () );
        }
        $router = $front->getRouter ();
        $router->addRoute('backend', new Zend_Controller_Router_Route('backend/:module/:controller/:action/*', array('controller'=>'index','action'=>'index'),array()));
        $router->addRoute('admin', new Zend_Controller_Router_Route_Static('admin',
            array(
                'module' => 'admin',
                'controller' => 'index' ,
                'action' => 'index'
            ),
            array(
                'module'     => 'admin',
                'controller' => 'index',
                'action'     => 'index'
            )));

    }
}

Это было прописано в boothstrap.php в отдельной папке cms. Т.е. разработчики сайта разделили сайт на cms и site, в первой лежит часть модулей, касающихся админки и всяких служебных дел, а вторая (публичная) часть содержала основные модули, отвечающие за публичную часть сайта (новости, статьи, каталог кухонь и пр.). Как-то тут всё запутанно, на мой дилетантский взгляд.