Intereting Posts
Использование одного и того же идентификатора сеанса в двух сценариях PHP одновременно Изменение родительской переменной из дочернего класса Переместить массив в массив в родительский массив php Как проверить параметры маршрута в Laravel 5? Использование API Google+ для PHP – необходимо получить адрес электронной почты пользователей Ошибка SMTP Connect (). Сообщение не отправлено. Ошибка отправителя: Ошибка SMTP Connect () PHP Предупреждение: Неизвестно: не удалось открыть поток Как выполнить цикл набора результатов mysql Заголовок местоположения PHP Игнорировать хэш Я хочу, чтобы мой поиск показывал только результаты с соответствующими значениями полей. Как это делается? Как проверить имя пользователя Twitter с помощью Regex PHP Instanciation и поздний статический контекст привязки Запрос API REST WooCommerce возвращает ошибку Имя файла проверки php существует, переименуйте файл phpdoc: Каков правильный способ документирования константы

Инструменты создания / интеграции PHP: используете ли вы их?

После прочтения статьи «Современный PHP-рабочий процесс» в выпуске журнала php | architect в ноябре 2008 года, в котором обсуждалось модульное тестирование ( phpUnit ), инструменты сборки ( Phing ) и непрерывная интеграция ( Xinc ), я вдохновляюсь, чтобы узнать больше о некоторых из инструментарий, доступный для PHP, особенно Phing.

Раньше я часто обрабатывал развертывание на производственном сервере, запустив сайт в качестве рабочей копии subversion и просто выполнив «обновление svn» в окне производства, чтобы развернуть последнюю версию кода.

Используете ли вы инструменты построения для PHP-кода? Какие преимущества вы, по вашему мнению, предлагаете для развертывания прямо из подрывной деятельности? На что мне следует обратить внимание, или с чем я могу столкнуться?

Я использовал и Phing, и Ant, и предпочел последнее гораздо больше. Сначала я пошел с Phing из-за того, что он написан на PHP, но, честно говоря, он не так зрел, как Ant. В конце концов, иметь зрелую сборную систему с большим сообществом стоит больше.

Делаются с Ant / Phing:

  1. От базовой проверки задерживайтесь на определенном языке, убедитесь, что существуют зависимости (другие библиотеки, каталоги и т. Д.),
  2. если они у вас есть, скомпилируйте шаблоны и т. д.
  3. Довести целевую базу данных до требуемой версии, в зависимости от проверенной версии кода
  4. и т.д.

Большая проблема, которую я вижу с Phing, заключается в том, что она создает ненужный слой косвенности. PHP – это язык сценариев, поэтому его можно запускать напрямую. Использование Phing в XML-конфигурации плохо подходит для языка: оно обеспечивает более читаемую декларативную конфигурацию, но за счет жертвовать какой-либо гибкостью языка. С Ant (вдохновение для этого маршрута) это имеет смысл, поскольку Java не обладает такой гибкостью, поскольку она менее динамична и требует компиляции.

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

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

Я посмотрел на Пинга, и это выглядело потрясающе. Для проекта, над которым я работаю, я фактически использую Antache Apache . Я использую его, чтобы сделать несколько вещей:

  1. Комбинируйте и сжимайте Javascript и CSS (сжатие выполняется с помощью компрессора YUI
  2. Замените стандартные файлы конфигурации файлами конфигурационных файлов (например, переименовать config.php.production в config.php)
  3. Удалите ненужные файлы (например, файл сборки ant, build.xml)

Я думаю, что Phing стоит посмотреть на Ant, потому что это родной PHP, который может быть приятным. Также, если вы делаете что-то большее, чем просто копировать / перемещать файлы, обратите внимание на проблемы с производительностью при переходе к рабочей среде. У меня была проблема, когда компрессор YUI работал нормально на моей локальной машине, но на относительно небольшой VPS он был очень медленным.

В проекте, над которым я сейчас работаю, мы используем phpUnderControl для запуска тестов и получения быстрой обратной связи, когда что-то сломано. Мы планируем использовать его для запуска других тестов, таких как некоторые, написанные в Watir .