Загрузка файлов по FTP с помощью Phing

Предыдущая статья о 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.
Понравилась статья? Подписывайтесь на продолжение
!
Опубликовано в PHP, Phing, Web разработка
Комментарии (3)
Вы можете отслеживать обсуждение записи с помощью RSS 2.0 ![]()
Вы также можете оставить комментарий, или трекбек с Вашего сайта.










Полезная статья. Быть может, когда-нибудь воспользуюсь.
Странно, почему разработчики не позаботились об этом сами. Может, следующую версию стоит подождать..
Зачем ждать если решение уже готово?
Разработчики скорее всего просто внесут его (или аналогичный вариант) в дистрибутив.