Плагин Frontcontroller не загружается - PullRequest
0 голосов
/ 04 декабря 2010

Когда я использую плагин frontcontroller в Zend Frameworker, он запускается перед автозагрузчиком.Как мне это сделать?

в моем app.ini

resources.frontController.plugins.routes = "Plugin_Routes"

plugins / Routes.php

class Plugin_Routes extends Zend_Controller_Plugin_Abstract {
}

Сообщение об ошибке ..

Неустранимая ошибка: класс 'Plugin_Routes' не найден в /usr/share/php/Zend/Application/Resource/Frontcontroller.php в строке 111

Нет пути включения вообще?

Ответы [ 4 ]

1 голос
/ 31 января 2012

Если ничего не работает, попробуйте поиграть с автозагрузчиком.

добавьте этот код в класс начальной загрузки

protected function _initBlablablaPlugin(){

    $autoloader = Zend_Loader_Autoloader::getInstance();
    //If your plugin is placed in the /library/My/Plugin/Blablabla, then register the "My_" namespace
    $autoloader->registerNamespace('My_');

    $frontController = Zend_Controller_Front::getInstance();
    $frontController->registerPlugin(new My_Plugin_Authorize());
}
1 голос
/ 04 декабря 2010

Раньше у меня было:

resources.frontController.plugins[] = "Dagho_Controller_Plugin_Auth"

, и это работает для меня очень хорошо

обновление : ничего особенного, только эти строки ниже и автозагрузчик доктрин

protected function _initAutoload() {
        $autoloader = new Zend_Application_Module_Autoloader(array(
                    'namespace' => 'Default',
                    'basePath' => dirname(__FILE__),
                ));

        return $autoloader;
    }
1 голос
/ 04 декабря 2010

Это верно?

plugins/Routes.php

Zend ожидает

Plugin/Routes.php

Поскольку автозагрузчик будет использовать имя класса для поиска нужных папок.

My_Class_Something

Будет:

My/Class/Something.php
0 голосов
/ 04 декабря 2010

Хорошо, руководство кажется неправильным или, по крайней мере, неясным: http://framework.zend.com/manual/1.11/en/zend.controller.plugins.html

Чего не хватает - вам нужно пространство имен приложения, иначе оно не будет работать в 1.11

app.ini

resources.frontController.plugins.routes = "Application_Plugin_Routes"

плагин

class Application_Plugin_Routes extends Zend_Controller_Plugin_Abstract { }

Будет работать нормально :)

...