2013-02-22 6 views
0

Я разработал веб-приложение с использованием Zend 1.10 и хотел бы начать переход на Zend 2, однако я немного обескуражен процессом, основанным на онлайн-учебниках ZF2.Использование отдельных компонентов

Для Zend Framework 1, это было так же просто, как определение, где моя библиотека была и инстанцирование конкретных классов, которые я использовал для моего проекта:

$library = '.:php/includes:/home/myusername/public_html/ZendFramework-1.11.11/library'; 
set_include_path(get_include_path() . PATH_SEPARATOR . $library); 
require_once('Zend/Loader/Autoloader.php'); 
Zend_Loader_Autoloader::getInstance(); 

я затем подключиться к базе данных с помощью «$ dbWrite = новый Zend_Db_Adapter_Pdo_Mysql ($ config_stuff); " например.

Нет ли аналогичного способа вытягивания классов из Zend 2 по частям в противоположность созданию полномасштабного приложения Zend?

ответ

3

Для полноты целей, стоит отметить альтернативу @ прямой, правильный и полезный ответ Divey в.

Вы можете использовать Composer для захвата отдельных компонентов ZF2. Все ZF2 components are on Packagist

Главное преимущество заключается в том, что вы можете захватить только тот компонент, который вам нужен; нет необходимости загружать всю структуру. Любые каскадные зависимости - ComponentX нуждается в ComponentY для работы - магически обнаружены (по конфигурации ComponentX) и установлены.

Кроме того, при использовании Composer у вас будет доступ ко всей экосистеме классов - вне ZF2, которые доступны в Packagist (или только на самом Github при условии, что пакет включен в Composer), просто добавив пакет к файлу composer.json вашего проекта.

+0

Благодарим вас за эту альтернативу, которая может на самом деле лучше соответствовать моим потребностям. Тем не менее, у него есть еще 2 вопроса. Во-первых, если бы я должен был загрузить 5 или около того компонентов, которые мне нужны, должен ли я использовать автозагрузчик для «поиска» этих 5 классов или есть ли более эффективная (более быстрая) альтернатива их загрузке? И, во-вторых, было бы труднее обеспечить, чтобы у меня были самые последние обновления, если я просто получаю отдельные классы? – Eric

+0

Автозагрузка с композитором очень проста. Каждый пакет Composer описывает свою собственную автозагрузку и передает эту информацию в Composer. Затем Composer предоставляет вам простой интерфейс для доступа к нему: просто добавьте 'include vendor/autoload.php' в сценарий начальной загрузки/запуска проекта, и все готово. Это действительно мило. ;-) Re: валюта пакетов: для каждого пакета, который Packagist имеет в своем реестре, исходное репо сканируется либо один раз в неделю, либо при нажатии (как правило, через Gitub post-commit hook). Для тех пакетов, которые не находятся в Packagist, легко указать непосредственно на сам репозиторий GH. –

+0

Благодарим за дополнительную информацию! – Eric

2

Похоже, вы хотите ZF2's Standard Autoloader. Попробуйте использовать это:

require_once 'Zend/Loader/StandardAutoloader.php'; 
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true)); 
$loader->register(); 
+0

Спасибо за ваш простой ответ .... – Eric

Смежные вопросы