尽管大多数开发人员可能不喜欢它,但是FTP是将站点文件部署到服务器的非常普遍的方法。为了简化此过程,Phing附带了一个方便的FTP传输操作,称为ftpdeploy。
为了使用ftpdeploy,我们首先需要安装Net_FTP软件包。要安装此软件包,只需输入以下命令:
pear install Net_FTP
我们需要创建的第一件事是build.properties存储ftp详细信息的文件
ftp.destination.host=ftp.theftphost.com ftp.destination.port=21 ftp.destination.username=theftpusername ftp.destination.password=theftppassword ftp.destination.dir=public_html ftp.destination.mode=binary
下面是ftpdeploy的一个简单示例。构建文件仅定义一个文件集,该文件集在目录中包含一个文件。ftpdeploy任务接受build.properties文件的参数,并使用文件集来确定应上载哪些文件。唯一可能不明显的选项是mode选项。这是为了告诉ftpdeploy使用哪种FTP传输模式,这些模式可以是ascii或二进制,默认值为二进制。
<?xml version="1.0"?> <project name="FtpUpload" default="main"> <!-- Include properties file. --> <property file="build.properties" /> <fileset dir="upload" id="TheFiles"> <include name="phpinfo.php" /> </fileset> <ftpdeploy host="${ftp.destination.host}" port="${ftp.destination.port}" username="${ftp.destination.username}" password="${ftp.destination.password}" dir="${ftp.destination.dir}" mode="${ftp.destination.mode}"> <fileset refid="TheFiles" /> </ftpdeploy> <target name="main"> <echo>FTP Upload Finished!</echo> </target> </project>
假设您已经调用了构建文件ftpupload.xml,则可以像这样运行此Phing构建文件。
phing -f ftpupload.xml
这将产生以下输出。
Buildfile: \ftpdeploy.xml [property] Loading \build.properties FtpUpload > main: [echo] FTP Upload Finished! BUILD FINISHED Total time: 2.4250 seconds
还有一个名为clearfirst的附加选项,可用于从远程目录中删除所有文件。此设置的默认值为“ false”。Phing文档指出,清除目录后,将上传设置的文件。我发现尽管Phing会清除目录,但不会上传文件。
请查看Phing文档以获取有关Phing ftpdeploy任务的更多信息。