Вычищая комментарии от спама (достали, честное октябрятское) наткнулся на незаслуженно позабытый вопрос товарища 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