Autoload своих библотек в Zend Framework 1.8+
Posted in Development, PHP, Tips And Tricks, ZendFramework on December 11th, 2009 by Yaroslav Vorozhko – Be the first to commentЧтоб загружать в Zend Framework свои библиотеки, нам надо сделать следующее:
Первое - это добавить физический путь к библиотеке в include_path.
Второе - это указать префикс классов библиотеки, если такой вообще используется.
Добавить путь в include_path можно двумя способами:
1. Жетско прописать путь в public/index.php файле:
-
set_include_path(implode(PATH_SEPARATOR, array(
-
realpath(APPLICATION_PATH . '/../library'),
-
realpath(APPLICATION_PATH . '/../mylib'),
-
get_include_path(),
-
)));
2. Прописать путь в конфигруационном файле application/configs/application.ini
-
includePaths.mylib = APPLICATION_PATH "/../mylib"
В обоих случаях мы добавляем путь к mylib в include_path. Второй способ более предпочтительный, так как на основе выбранной конфигурации (production, develeopment, test) можно устанавливать путь к различным версиям mylib.
Кстати используя этот же прием, можно устанавливать путь и к каталогу library/Zend и на основе конфигураций подгружать различный версии Zend Framework.
И так, второе что нам необходимо сделать - это подключить автозагрузчик и установить префикс используемый классами библиотеки.
Я прописал автозагрузчик в файле public/index.php
-
require_once 'Zend/Loader/Autoloader.php';
-
$loader = Zend_Loader_Autoloader::getInstance();
-
$loader->registerNamespace('My_');
В данном случае префикс классов в моей библиотеки "My_".
Также, этот же код можно прописать и в классе Bootstrap.php
-
protected function _initAutoload()
-
{
-
require_once 'Zend/Loader/Autoloader.php';
-
$loader = Zend_Loader_Autoloader::getInstance();
-
$loader->registerNamespace('My');
-
}
Все, теперь ZF знает как загружать классы из вашей бибилиотеки.
