今天学生开始编码。为了遵循时间表,我今天做了两件事:为我的扩展创建了基本文件结构(这是比较容易的),然后创建了一个 Phing 构建脚本,让每个人都能轻松地从 SVN 存储库中创建一个可安装的包。在接下来的几段中,我将介绍如何从最新修订版构建一个可安装的包,如果您不想等待官方版本的话。

需求

构建包只需要两样东西:XAMPP(或其他网页服务器应用)和 Phing。我在 Linux 上使用 XAMPP,所以以下信息可能与您的系统有所不同。

安装 XAMPP

在 Linux 上这非常简单,您只需要两个命令。在撰写此博客条目时,最新版本是 1.7.1

$ wget http://www.apachefriends.org/download.php?xampp-linux-1.7.1.tar.gz
$ sudo tar xvfz xampp-linux-1.7.1.tar.gz -C /opt

就这样安装了 XAMPP。您可以用以下命令启动它(您需要拥有超级用户权限)

$ sudo /opt/lampp/lampp start 

安装 Phing

默认的 XAMMP 包不包含 Phing,所以您需要手动安装它。这不会比 XAMPP 安装更困难,您只需要再次使用两行命令

$ sudo /opt/lampp/bin/pear channel-discover pear.phing.info
$ sudo /opt/lampp/bin/pear install phing/phing

如果一切顺利,您就安装了 Phing。有关更多信息及配置选项,请查看文档网站上的使用 eclipse 和 phing 进行扩展开发文章。

构建扩展

要构建我的扩展,首先您需要检查它。为此您需要一个 SVN 客户端。在 Linux 上,您可以通过命令行进行操作。如果您的系统未安装 svn,请使用您的包管理器进行安装。在 Ubuntu 上看起来像这样

$ sudo apt-get install subversion

如果您使用 Eclipse 进行开发,那么您也可以安装它的 SVN 插件。有关更多信息,请阅读为 Joomla! 开发设置工作站文章。一旦您的 svn 客户端安装并准备好使用,您需要从 SVN 存储库中检出项目(将 'targetdirectory' 替换为您想要检出项目的目录名称)

$svn checkout  https://labs.joomla.org/svn/labs/playground/people/erdsiger/trunk /targetdirectory

检出仓库后,你可以在trunk目录下找到两个名为'code'和'scripts'的目录。'code'目录包含扩展的文件,而'scripts'目录包含两个用于Phing的构建文件。假设你当前位于trunk目录中,使用以下命令来构建软件包

$  sudo /opt/lampp/bin/phing -f ./scripts/build/build.xml 

该命令将提供以下输出

Buildfile: /htdocs/survey/trunk/scripts/build/build.xml

Survey Suite > config:

 [property] Loading /htdocs/survey/trunk/scripts/build/build.properties

Survey Suite > build:

    [mkdir] Created dir: /htdocs/survey/trunk/packages
    [mkdir] Created dir: /htdocs/survey/trunk/packages/tmp
[phingcall] Calling Buildfile '/htdocs/survey/trunk/scripts/build/build.xml' with target 'export'

Survey Suite > config:

 [property] Loading /htdocs/survey/trunk/scripts/build/build.properties

Survey Suite > export:

     [copy] Copying 6 files to /htdocs/survey/trunk/packages/tmp
      [tar] Building tar: /htdocs/survey/trunk/packages/survey.tar.gz
   [delete] Deleting directory /htdocs/survey/trunk/packages/tmp

BUILD FINISHED

Total time: 0.4778 seconds

之后你会注意到已经创建了一个名为'packages'的新目录。这个目录包含了一个可安装的、gzip压缩的软件包,可以安装在Joomla!的后端。注意:目前安装可能会失败,因为我只是为构建脚本创建了文件结构。我将在扩展可以安装时,很快写一篇新的博客文章。