Работа с Zend Tool в средах с несколькими разработчиками

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

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

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

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

Благодарю.

3 ответа

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

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

Zend_Tool жестко кодирует APPLICATION_ENV для "развития" в файле 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

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

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

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

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

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

Другие вопросы по тегам