Вычищая комментарии от спама (достали, честное октябрятское) наткнулся на незаслуженно позабытый вопрос товарища altern-a про обещанный ftpupload-таск. Вы спросили – мы ответили: нет, мне не сложно – делюсь.
Собственно сам класс FtpUploadTask.php. И небольшие пояснения.
Код по означенной ссылке необходимо сохранить в файл %PHING_HOME%/classes/phing/tasks/ext/FtpUploadTask.php (Разумеется вы уже знаете что такое Phing и он у вас установлен и готов к использованию).
Для работы требуется установленный в include_path PEAR::Net_FTP, которому в свою очередь необходим php-extension FTP.
На заметку виндузятникам
Первое можно установить посредством выполнения магического пасса в командной строке:
>pear install –all-deps net_ftp
Второе в виндовом php уже вкомпилено.
Параметры, которые принимает task (на всякий случай на моём террибл инглиш ):
Name | Type | Description | Default | Required |
---|---|---|---|---|
host | String | Hostname. | n/a | Yes |
port | Integer | Ftp server’s port. | 21 | No |
username | String | Ftp user | n/a | Yes |
password | String | Ftp password | n/a | Yes |
targetDir | String | Path to destination directory | . (FTP-user’s home) | No |
mode | String | Upload FTP-mode. | Binary | No |
cleanDir | Boolean | Cleanup target directory before upload? | False | No |
overwriteExisten | Boolean | Overwrite existen files? | True | No |
passiveMode | Boolean | use passive or active ftp-data connection | True | No |
И пример использования : привожу часть build.xml необходимую и достаточную для запуска таска.
<!-- //skip --> <taskdef classname="phing.tasks.ext.FtpUploadTask" name="ftpupload" /> <!-- //skip --> <target name="deploy"> <ftpupload host="example.com" username="joe" password="$ecr3t" targetDir="/remote/project_home/"> <fileset dir="/path/to/local/project"> <include name="**" /> <exclude name="**/*.dist" /> <exclude name="src/*" /> </fileset> </ftpupload> </target> <!-- //skip -->
Разумеется taskdef удобнее перенести в defaults.properties, для того чтобы не таскать его из проекта в проект.
И снова повторюсь – “таким образом программист может за три часа написать программу, которая сделает за пять минут то, что другой человек делал бы целый час…” ;o)
Technorati Tags: php, phing, deploy
Pingback:phing.tasks.ext.SvnExportRevisionDiffTask « Чудо{вищные} заметки
Pingback:Загрузка файлов по FTP с помощью Phing
Есть ведь родной таск у финга:
PEAR\phing\tasks\ext\FtpDeployTask.php
http://phing.info/docs/guide/stable/chapters/appendixes/AppendixC-OptionalTasks.html#FtpDeployTask
Это он сейчас “есть”, а три года назад его не было.