2013-02-24 2 views
0

Поиск Я заметил, что в приложениях, основанных на Zend Framework, плагины находятся внутри папки библиотеки. Но я пытаюсь работать таким образом, что разные приложения используют одну и ту же библиотеку плагинов.Подход общих библиотек плагинов для Zend Framework

Моя интуиция подсказывает, что эти плагины должны быть внешними для приложения, если другое приложение может его использовать. То, что я хочу сделать, это библиотека плагинов для моих приложений ZF. Структура Я ищу будет что-то вроде этого:

www/ 
    zf-app-1/ 
    zf-app-2/ 

www-library/ 
    zf-my-plugins/ 
     database/ 
      EnttityManager.php 
      DoctrineEntityManager.php 

Таким образом, ZF-приложение-1 и ZF-приложение-2 используется один и тот же внешний плагин для них. Возможно, я ошибаюсь, но этот подход для меня более логичен, чем zf-app-1, а zf-app-2 обладает копией каждой из одной и той же плагиновой папки в вашей библиотеке. Хотели бы вы высказать мнение по этому поводу.

Но мой вопрос в том, как настроить приложения zf-app-1 и zf-app-2 для использования этой общей библиотеки. Я бы сделал это через application.ini каждого.

Спасибо!

ответ

1

Если вы хотите общую библиотеку за пределами вашей папке проекта, как это:

STUFF/проекты/zfproject1
вещи/проекты/zf2project2
вещи/проекты/zf2project3
. .....
вещи/общие/библиотеки < --- общие библиотеки здесь

Предположим, совместно используемую библиотеку под названием MyLib

материал/общий/библиотека/MyLib

Вам нужно будет

  1. Добавить папку библиотеки на пути поиска
  2. Добавить пространство имен библиотек на автозагрузчик

Ваш application.ini:

autoloaderNamespaces[] = "MyLib_" 
includePaths.library = APPLICATION_PATH "/../../../library" 
+0

Это добавило к включают пути. Но как я могу настроить несколько библиотек 'includePaths.library'? 'includePaths.library' не для библиотечного приложения? Мне это нужно, но нужно другое, внешнее и общее для других приложений. Папка 'zf-app-1' имеет свою собственную библиотечную папку, но также должна использовать внешний. Например, я хотел бы использовать 'resources.entitymanager' (плагин для Doctrine 2, например) был внешним и общим для многих приложений. – Maykonn

+1

Вы должны просто использовать 'includePaths.library1 =" путь/to/library1 "', а затем 'includePaths.library2 =" путь/to/library2 "'. Даже избегая клавиш в целом: 'includePaths [] =" путь/to/library1 "' и 'includePaths [] =" путь/to/library2 "' –

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