Быстрый загрузчик классов Zend Framework

// Июль 24th, 2010 // Zend Framework, Веб-разработка

Позволяет максимально быстро загружать классы Zend Framework без использования require_once() или Yii::import().

Установка

Расширение

Распаковываем расширение в protected/extensions/.

Zend Framework

Копируем директорию Zend фреймворка в protected/vendors/. Также можно воспользоваться сервисом, вырезающим из ZF необходимый функционал.

Вырезаем require_once из ZF

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

Через поиск-замену в IDE: require_once заменяем на //require_once.

Если у вас есть под рукой консоль, то можно воспользоваться её возможностями:

GNU:

% cd path/to/ZendFramework/library
% find . -name '*.php' -not -wholename '*/Loader/Autoloader.php' \
  -not -wholename '*/Application.php' -print0 | \
  xargs -0 sed --regexp-extended --in-place 's/(require_once)/\/\/ \1/g'

MacOSX:

% cd path/to/ZendFramework/library
% find . -name '*.php' | grep -v './Loader/Autoloader.php' | \
xargs sed -E -i~ 's/(require_once)/\/\/ \1/g'
% find . -name '*.php~' | xargs rm -f

Изменяем index.php

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

define('YII_DEBUG', true);
$webRoot=dirname(__FILE__);
require_once(dirname($webRoot).'/framework/yii.php');
$configFile=$webRoot.'/../protected/config/main.php';
$app = Yii::createWebApplication($configFile);

Yii::import("ext.yiiext.components.zendAutoloader.EZendAutoloader", true);

// you are able to load custom code that is using Zend class naming convention
// with different prefix
EZendAutoloader::$prefixes = array('Zend', 'Custom');
Yii::registerAutoloader(array("EZendAutoloader", "loadClass"));

$app->run();

Оригинал: http://rmcreative.ru/blog/post/zendautoloader-1.1

Исходники: http://code.google.com/p/yiiext/downloads/detail?name=zendAutoloader_1.1.zip

Share

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


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