В этой статье я хочу рассказать об инструменте, который может значительно сэкономить ваше время и защитить от механических ошибок. Этот инструмент очень часто применяется при разработке крупных проектов профессиональными командами. Но в этой статье я постараюсь показать, что он пригодится и при самостоятельной разработке небольших web приложений. Речь, конечно, пойдет о Phing. Он позволяет автоматизировать большинство рутинных операций, с которыми вы можете столкнуться во время разработки. Принцип работы следующий. Вы создаете xml файл, в который записываете необходимые группы действия (о синтаксисе этого файла немного ниже), после этого вы сможете выполнить любую группу действий всего одной командой. Т. е., по большому счету, phing можно считать «продвинутой» версией командных файлов. Примечание. Проект Phing основан на Apache Ant о котором я уже писал.
Синтаксис файлов практически одинаков, основная разница заключается в том, что ant ориентирован в первую очередь на Java, а phing – на PHP. Сделать даже сокращенный обзор возможностей такого инструмента в рамках статьи практически невозможно, поэтому я только покажу парочку практических примеров, чтобы вы могли сформировать общее представление о нем (если у вас его еще нет ). Прежде всего, разберемся, в каких случаях нет смысла применять Phing. Принцип очень простой. Чем больше и сложнее проект, тем больше выигрыш от использования Phing. Т. е. если ваш проект содержит больше одного-двух десятков файлов, вам имеет смысл подумать об использовании этого инструмента.
Переходим к установке. Phing распространяется в двух вариантах. В виде PEAR пакета и как отдельный дистрибутив. Для первого варианта установка сводится к выполнению двух команд: pear channel-discover pear. phing. info pear install phing/phing А второй – достаточно подробно описан в документации, и останавливаться на нем я не буду. Теперь выбираем проект и создаем для него build файл. Для этого примера я взял проект с такой структурой:
public_html index. php js/ css/ system/ application/ ............
Как видите, проект довольно простой, содержит две папки с таблицами стилей и JavaScript файлами, а в папке system – находится фреймворк CodeIgniter и php скрипты самого приложения (папка application). Допустим, мы хотим передать кому-то архив с этим web приложением. Естественно, архив несложно создать вручную, всего пара кликов мышкой. Но подождите, если мы не хотим включать в него файлы фреймворка, то нам придется вручную сортировать файлы для архива. Попробуем автоматизировать эту работу с помощью Phing. Прежде всего, создадим папку, в которую будет помещен архив. Для этого создаем файл build. xml и пишем в него следующее: