суббота, 12 декабря 2009 г.

Autoload своих библотек в Zend Framework 1.8+

Чтоб загружать в Zend Framework свои библиотеки, нам надо сделать следующее:

Первое — это добавить физический путь к библиотеке в include_path.

Второе — это указать префикс классов библиотеки, если такой вообще используется.


Добавить путь в include_path можно двумя способами:

1. Жетско прописать путь в public/index.php файле:



CODE:




  1. set_include_path(implode(PATH_SEPARATOR, array(



  2.     realpath(APPLICATION_PATH . '/../library'),



  3.     realpath(APPLICATION_PATH . '/../mylib'),



  4.     get_include_path(),



  5. )));







2. Прописать путь в конфигруационном файле application/configs/application.ini



CODE:




  1. includePaths.mylib = APPLICATION_PATH "/../mylib"







В обоих случаях мы добавляем путь к mylib в include_path. Второй способ более предпочтительный, так как на основе выбранной конфигурации (production, develeopment, test) можно устанавливать путь к различным версиям mylib.

Кстати используя этот же прием, можно устанавливать путь и к каталогу library/Zend и на основе конфигураций подгружать различный версии Zend Framework.


И так, второе что нам необходимо сделать — это подключить автозагрузчик и установить префикс используемый классами библиотеки.

Я прописал автозагрузчик в файле public/index.php



CODE:




  1. require_once 'Zend/Loader/Autoloader.php';



  2. $loader = Zend_Loader_Autoloader::getInstance();



  3. $loader->registerNamespace('My_');







В данном случае префикс классов в моей библиотеки "My_".


Также, этот же код можно прописать и в классе Bootstrap.php



CODE:




  1. protected function _initAutoload()



  2.     {



  3.         require_once 'Zend/Loader/Autoloader.php';



  4.         $loader = Zend_Loader_Autoloader::getInstance();



  5.         $loader->registerNamespace('My');



  6.     }







Все, теперь ZF знает как загружать классы из вашей бибилиотеки.




© Yaroslav Vorozhko for Просто про веб технологии, 2009. |
Permalink |
No comment |
Add to
del.icio.us


Post tags: Loader, PHP, Zend Framework

Комментариев нет:

Отправить комментарий