2010-07-17 3 views
2

Лучше всего, чтобы каждое приложение имело собственную копию кода библиотеки ZF или имело код в одной области на диске и просто убедитесь, что оно включено в путь включения? Наличие каждого приложения со своей собственной копией кажется лучшим способом избежать любых проблем с развертыванием (например, разработка в Windows и развертывание в Linux).Рекомендации по практике библиотеки Zend Framework?

Я использую Netbeans в качестве моей IDE, и я замечаю, что он НЕ копирует файлы (папка библиотеки пуста, когда в ней создается папка Zend со всеми подпапками под этим) при создании нового проекта Zend.

ответ

1

И если вы хотите обновить до более новой версии, вы должны были бы сделать это на всех устанавливается ..;)

Я использую одну кодовую для рамок и все приложения ссылаться на него оттуда.

+0

Справедливая точка. Как вы обрабатываете проблемы с развертыванием? Просто измените код, который ссылается на путь, когда он переходит на другой сервер? Или, может быть, вы можете использовать ... Я забыл термин PHP, но application.ini и имел разные настройки, указывающие на местоположение? –

+1

Каждое приложение имеет библиотеку для библиотек. У нас также есть папка с общей библиотекой на сервере для вещей Zend или Doctrine. Поэтому при каждом развертывании мы просто привязываем папку Zend в общей библиотеке к папке локальной библиотеки приложения. Мы используем Capistrano для автоматического развертывания, что делает вещи грязными. –

1

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

htdocs/common/zend-1.10.1/ 
htdocs/common/zend-1.10.2/ 
htdocs/apps/app1 
htdocs/apps/app2 

Если же мы на производственной среде - например app1 был развернут на его собственном сервере, то мы просто делаем app1 корень/HTDOCS папку (так загрузить все материал в папке app1 в htdocs сервера). Затем мы также создаем общую папку и загружаем любые библиотеки, которые использует конкретное приложение.

Это работает так же, как и общая папка define(COMMON_PATH, $_SERVER['DOCUMENT_ROOT'].'/common'), поэтому для разных структур каталогов не требуется дополнительной настройки. Затем мы можем использовать это в нашем приложении. zendpathorwhatever = COMMON_PATH "/zend-1.10.2

Таким образом, у нас есть только одна копия каждой версии фреймворка zend, которую мы используем, и для производства нам нужно только загрузить то, что нам нужно.

Каждое приложение всегда имеет собственную библиотечную папку, так как это используется для каждого приложения. Если выясняется, что все приложения используют библиотеку, то мы вставляем ее в общую папку.

В целом, это легко управлять, и оказалось, что это довольно элегантное решение при использовании SVN Externals.

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