Предыдущая статья о Phing была немного не полной из-за отсутствия возможности загружать файлы на сервер в автоматическом режиме.
В стандартной комплектации Phing загрузку по FTP не поддерживает (кстати, довольно странно). Но, естественно, писать самостоятельно этот task не придется. Все уже сделано за нас 😉 .
Я нашел два task’а, предназначенных для работы с FTP: FtpUploadTask и FtpDeploy.
Т.к., судя по описанию, возможности и настройки практически идентичны, я расскажу только о первом. К тому же его автор ведет собственный блог (Чудо{вищные} заметки) и написал довольно много интересных статей о Phing.
Прежде чем перейти к описанию, хочу предупредить.
Не ставьте эксперименты на вашем рабочем сервере! Установите локальный FTP (вполне подойдет FileZilla Server (http://filezilla-project.org/)) и тестируйте на нём.
Устанавливаем task.
Качаем файл FtpUploadTask.php
и сохраняем его в папку $PHING_DIR$/tasks/ext/
($PHING_DIR$
— папка в которую установлен Phing).
Объявляем новый task. Для этого в build файл добавляем строку.
<taskdef name="ftpupload" classname="phing.tasks.ext.FtpUploadTask" />
Теперь можно использовать ftpupload для отправки файлов на сервер.
Я приведу пример задачи, которую написал в дополнение к предыдущей статье.
<target name="deploy" depends="copyfiles, gzipjs, minifycss"> <ftpupload host="host" username="user" password="pass" cleanDir="true" targetDir="/app_folder/"> <fileset dir="${DEPLOY_DIR}"> </fileset> </ftpupload> </target>
Здесь мы указали следующие параметры:
1) host
— адрес сервера;
2) username
– имя пользователя (с правами записи);
3) password
– пароль;
4) cleanDir
– удаляем все старые файлы;
5) targetDir
– папка в которую будет загружено приложение.
Список загружаемых файлов создаем с помощью fileset
, т.е. в данном случае мы включили все файлы приложения.
Кроме того, можно задать ещё несколько параметров, например, явно указать порт FTP сервера. Полный список параметров можно посмотреть здесь.
Как видите, Phing – это очень удобный инструмент, особенно если вы нашли все необходимые task'и 😉 . Но, в любом случае, если вы можете написать PHP скрипт, который решает вашу задачу, то переделать его в виде task’а будет совсем не сложно.
До встречи!
P.S. Ещё раз хочу напомнить. Подумайте дважды (лучше трижды), прежде чем запускать ftpupload с параметрами cleanDir="true" targetDir="/"
. Восстановить файлы будет НЕВОЗМОЖНО.
Интересно почитать:
Маленькие хитрости Google – найдем наших конкурентов в AdSense.