Используем Phing
Каждый день разработчики сталкиваются с огромным количеством монотонных задач. Это может быть сборка проекта, контроль качества, доставка изменений, подготовка окружения и так далее. На сегодняшний день существует огромное количество решений, которые позволяют автоматизировать некоторые из этих монотонных действий.
Одним из таких инструментов является Phing, который может быть интересен как раз PHP-разработчикам, так как сам написан на PHP и позволяет расширять свой функционал.
Устанавливается Phing через composer. При этом достаточно легко конфигурируется при помощи XML. Здесь можно посмотреть пример конфигурации, осуществляющий сборку проекта.
На текущий момент Phing поддерживает огромное количество задач: например, копирование, удаление файлов, создание директорий, работа с git, а также вызов любой shell-команды напрямую. Даже если имеющийся набор возможностей окажется недостаточным, Phing позволяет расширять имеющийся функционал. Для этого можно создавать собственные задачи, реализующие требуемую вам последовательность команд, специальные типы данных, которыми могут оперировать ваши задачи, или мапперы, позволяющие модифицировать входные данные под ваши нужды.
Здесь можно посмотреть инструкцию по тому, как можно создать собственную задачу. Представлен достаточно простой пример, выполняющий функцию echo, но вы можете изменить его и превратить в создание симлинков на shared-папки после деплоя (как это делает capistrano).
А здесь приводится пример создания новых типов данных. Причем пример весьма полезный, так как показывает возможность выполнять подключение к базе данных проекта, что открывает огромные возможности. Например, разминка кэша под каждого активного пользователя после деплоя.
И конечно же, при автоматизации многих процессов может понадобиться свой маппер, пример которого можно изучить здесь.
Есть вопрос? Напишите в комментариях!