Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как подключить плагин к front контроллеру?
Просмотров: 275
 
Ответов: 2
Хочу поместить в плагин разграничение прав доступа, но столкнулся с проблемой создания плагина. Пробовал искать решение в официальном мануале и в других статьях, но там приводятся примеры кода плагина и кода подключения, который сказано нужно написать в Bootstrap. Но суть проблемы в том, что я банально не знаю куда положить написанный файл, что бы зенд его увидел, а при добавлении в Bootstrap кода из примера получаю ошибки.
P.S. структура проекта стандартная, созданная zend_tool.
Плагины для FrontController`a подключаются так:
$front = Zend_Controller_Front::getInstance();
$front->registerPlugin(new You_Plugin_Example());
Понятно, что перед инстанцированием необходимо подключить файл с классом плагина:
require APPLICATION_PATH . '/path/to/plugins/example.php';
Но лучше, конечно, настроить автозагрузчик. Сделать это можно несколькими способами:
- Вы можете загружать плагин из собственной библиотеки. Для этого подключите новое пространство имен:
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('You_');
- Вы можете указать загрузчику префикс и директорию с плагинами:
$loader = new Zend_Loader_PluginLoader();
$loader->addPrefixPath('You_Plugin', APPLICATION_PATH . '/path/to/plugins/');
- Вы можете добавить необходимые директории в module autoloader:
$module = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Example',
'basePath' => APPLICATION_PATH . '/modules/example',
'resourceTypes' => array(
'plugin' => array(
'namespace' => 'Plugin',
'path' => 'plugins/',
),
)
));
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('You_');
$loader = new Zend_Loader_PluginLoader();
$loader->addPrefixPath('You_Plugin', APPLICATION_PATH . '/path/to/plugins/');
$module = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Example',
'basePath' => APPLICATION_PATH . '/modules/example',
'resourceTypes' => array(
'plugin' => array(
'namespace' => 'Plugin',
'path' => 'plugins/',
),
)
));
В application\Bootstrap.php добавляешь метод _initControllerPlugins(). Если плагинам не нужны параметры, то можно в application.ini добавить строчку resources.frontController.plugins
Вот пример:
protected function _initControllerPlugins()
{
$acl = new AclModel();
$auth = Zend_Auth::getInstance();
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new My_Controller_Plugin_Acl($acl, $auth));
$frontController->registerPlugin(new My_Controller_Plugin_AuthCookie($auth));
}
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться