3ev/phingy

此包已被废弃,不再维护。未建议替代包。
此包的最新版本(v4.0.0)没有可用的许可证信息。

管理PHP站点的构建脚本的实用集合

v4.0.0 2016-05-31 13:23 UTC

README

#Phingy

Phingy 是一组可混合使用的构建脚本集合,您可以根据项目需求不同进行混合。要使用这些脚本,您需要从您的 own project.xml 开始,在构建脚本中包含所需的脚本。

###安装与依赖

Phingy 通过 Composer 进行安装。将以下内容添加到您项目的 composer.json,然后运行 composer install

{
    "require": {
        "3ev/phingy": "~4.0"
    },
    "scripts": {
        "post-install-cmd": [
            "Tev\\Phingy\\ComposerScripts::postInstall"
        ]
    },
    "config": {
        "bin-dir": "bin"
    }
}

然后您可以使用以下命令运行 Phing:

$ bin/phing

###'Skel' 文件

Phingy 将自动从项目中的任何位置的 .skel 文件生成文件。这些文件可以包含 Phing 属性,这些属性将在编译时用它们的实际值替换。

例如,您可能想为项目创建一个 Apache vhost 配置文件,这样您就可以将其提交到源代码控制,而无需包含任何特定环境的配置。如下所示

# In config/httpd.conf.skel

<VirtualHost *:80>
    ServerName ${build.url}
    DocumentRoot ${build.public_dir}
</VirtualHost>

###数据库任务 & S3

如果您想使用从 Amazon S3 推送/拉取数据库备份的任务,您需要安装 Pear Amazon S3 包

$ pear install Services_Amazon_S3

这将允许您使用以下命令备份和下载您的完整数据库到/从 S3:

$ bin/phing db:commit
$ bin/phing db:update

还有许多其他数据库任务,可以让您轻松配置项目中的 MySQL 数据库。

###设置 Web 服务器

Phingy 包含一个 build:server 任务,默认情况下将配置并安装项目的 Apache 配置。

配置将从 config/httpd.conf 链接至 /etc/apache2/sites-enabled,因此您可以提交文件到版本控制(或使用 .skel 扩展名)并简单地运行

$ sudo bin/phing build:server

以在 Apache 上启动您的项目。

###特定平台的任务

Phingy 包含一些特定于平台的任务集,如下所述

  • typo3 Typo3 特定任务(包括 db)。将在构建时设置 Typo3,并提供一些实用方法。
  • sphinx Sphinx 特定任务。提供为项目索引 Sphinx 数据的任务。
  • laravel Laravel 特定任务。提供与 Laravel 框架一起工作的任务。

###使用平台设置您的项目

当您运行 composer install 时,您将提示选择用于项目的模板。选择模板将在项目的 config/ 目录中创建一个名为 project.xml 的文件。

project.xml 文件包含一些钩子,您可以将其添加到项目中特定的任务。目前,这些是

project:config                Configure extra properties to use in your build
project:build:before          Run some tasks before `build`
project:build:after           Run some tasks after `build`
project:build:housekeeping    Cleanup any uneeded files or data

每个平台也包含这些钩子,形式为 [platform]:build:before 等。如果您想使用平台,只需包含它即可

<import file="${phingy.path}/scripts/platform/[platform].xml" />

然后在你的项目特定钩子中调用其每个钩子

<target name="project:build:before">
    <phingcall target="[platform]:build:before" />
</target>

注意:如果您选择非默认模板(如'typo3'),所有这些都将为您处理。

###添加您自己的项目特定任务和配置

您可以在 config/project.xml 中添加任何您自己的任务。这些应该使用 project: 命名空间,以符合惯例。您可以添加独立任务,或者在任意的可用钩子中调用它们。

###覆盖现有任务

如果您需要,您可以在 project.xml 中创建一个同名的新任务来覆盖内置任务。不过,您通常不需要这样做,因为内置钩子已经提供了足够的灵活性来定制任务。

###添加额外的配置

如果可能,您应该将任何项目特定的配置添加到 config/project.properties。如果您需要在构建期间提示用户输入,您可以在 project:config 钩子中这样做。

###关于 ./build.xml

build.xml 位于项目的根目录,并从 vendor/ 中创建符号链接。您应该将此文件添加到 .gitignore