Работа с Zend Tool в средах с несколькими разработчиками - PullRequest
4 голосов
/ 23 августа 2010

В любом проекте Zend Framework я могу работать в 2 или 3 местах - на моем рабочем ПК, домашнем ПК или моем MacBook.Мой исходный код всегда находится в SVN, и я обычно работаю на сервере разработки, прежде чем отправлять выполненную работу на рабочий сервер.В такой среде я никогда не был слишком уверен, где именно мне следует работать с Zend_Tool.

Как я вижу, есть 2 варианта:

  1. Настройка для локальной работы с Zend_Tool в каждой среде разработчика, а затем отправка оттуда на сервер dev, проверка манифеста и т. Д. С помощьюкаждое использование Zend_Tool.
  2. Используйте Zend_Tool непосредственно на сервере разработчика и затем загружайте каждое добавление / изменение, чтобы затем вставить его в SVN.

Я бы сказал, что самый надежный способбыть множественной установкой Zend_Tool, но мне было бы интересно узнать, могут ли люди подумать о возможных проблемах с этим или о причинах, по которым я должен сделать другой выбор.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 15 сентября 2010

Zend_Tool фактически предназначен для использования в средах разработки.Вы чувствуете, что используете его в нескольких местах, совершенно правильно, на самом деле единственная проблема - это синхронизация между XML-файлами, которые Zend_Tool использует, чтобы узнать другую конфигурацию проекта, и все же это произойдет, только если основные изменения будут внесены во время одной и той же ревизии.на разных рабочих копиях (общее ограничение управления версиями / проблема / что угодно).

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

2 голосов
/ 05 марта 2011

Zend_Tool жестко кодирует от APPLICATION_ENV до 'development' в файле Tool/Project/Context/Zf/BootstrapFile.php

Вы можете получить все безрассудно и изменить исходный код (не очень хорошая идея, но это будет работать).Применение этого патча позволит вам использовать переменную окружения оболочки, чтобы сообщить Zend_Tool, в какой среде вы находитесь.

    --- BootstrapFile.php (saved version)
    +++ (current document)
    @@ -106,9 +106,11 @@
                     define('APPLICATION_PATH', $this->_applicationDirectory->getPath());
                     $applicationOptions = array();
                     $applicationOptions['config'] = $this->_applicationConfigFile->getPath();
    +                
    +                $env = getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development';

                     $this->_applicationInstance = new Zend_Application(
    -                    'development',
    +                    $env,
                         $applicationOptions
                         );
                 }
    ,

Просто не забудьте установить переменную окружения APPLICATION_ENV.

Нет необходимости говоритьэто довольно опасно и может взорваться, если у вас неправильный набор переменных окружения, но для тех из нас, кто использует ZFDoctrine, который интегрирует команды Doctrine в Zend Tool, у нас не так много других вариантов, когда речь идет о миграции доктрины.

См. Эту ссылку http://framework.zend.com/issues/browse/ZF-9898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel

1 голос
/ 09 сентября 2010

Что мы делаем здесь, в моей работе, так это создаем конфигурационный экземпляр. Делая это, мы получаем 3 конфига в зависимости от среды, в которой выполняется приложение.

  1. Локальный компьютер (отладка во время программирования).
  2. Разработка (используется для тестирования нашего кода перед нажатием на производство).
  3. Производство (Живая среда).

Затем мы настраиваем класс config для загрузки конфигурации, содержащей пути и данные для наших инструментов, в зависимости от среды, которую мы указываем в нашем файле конфигурации.

По сути, у нас есть файл с именем Chooser.txt, в котором будет указано имя файла конфигурации для запуска среды. Когда мы хотим запустить его локально, мы редактируем файл Chooser.txt в local_config.txt (мы используем .txt, чтобы мы могли проверить определенные конфигурации и затем .htaccess каталог конфигурации, чтобы никто не мог его просмотреть). Когда мы нажимаем на сервер dev, мы редактируем Chooser.txt, чтобы сказать dev_config.txt и так далее. Затем в dev_config.txt или local_config.txt у нас будут переменные конфигурации для инструментов, настройки php и т. Д. *

Теперь, с учетом сказанного, мы устанавливаем инструмент в каждой среде, поэтому у нас будут наши инструменты и библиотеки в нашей локальной среде, разработке и производстве. Наличие наших инструментов в локализованной среде значительно упрощает тестирование при обновлении / исправлении инструментов, так что вы не просто исправляете инструменты на рабочем сервере, когда вам нужно сначала протестировать их на сервере разработки.

...