3ev / phingy
管理PHP站点的构建脚本的实用集合
Requires
- phing/phing: ~2.7
- dev-master
- v4.0.0
- v3.0.0
- v2.0.0
- v1.0.1
- v1.0.0
- v0.13.0
- v0.12.3
- v0.12.2
- v0.12.1
- v0.12.0
- v0.11.0
- v0.10.0
- v0.9.1
- v0.9.0
- v0.8.1
- v0.8.0
- v0.7.7
- v0.7.6
- v0.7.5
- v0.7.4
- v0.7.3
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-autoBuildConfig
This package is not auto-updated.
Last update: 2024-06-07 11:48: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
。