zfcampus/zf-deploy

此包已被弃用且不再维护。未建议替代包。

Zend Framework 应用程序部署工具

1.3.0 2018-05-07 15:51 UTC

This package is auto-updated.

Last update: 2020-01-09 17:46:18 UTC


README

仓库弃用 2019-12-31

此仓库已弃用,未提供替代方案。

Build Status Coverage Status

介绍

ZFDeploy 是一个用于部署 Zend Framework 应用的命令行工具。

此工具会生成一个用于部署的文件包。该工具支持以下格式:ZIP、TAR、TGZ (.TAR.GZ)、.ZPK(Zend Server 6 的部署文件格式)。

要求

请参阅 composer.json 文件。

安装

ZFDeploy 可以以两种方式安装:作为可独立更新且可执行的 phar 文件,或通过 Composer。

独立 PHAR 安装

独立的 phar 文件可在以下地址获取

您可以使用以下任一命令获取它。

通过 curl

$ curl -o zfdeploy.phar https://packages.zendframework.com/zf-deploy/zfdeploy.phar

通过 wget

$ wget https://packages.zendframework.com/zf-deploy/zfdeploy.phar

或使用您的已安装 PHP 二进制文件

$ php -r "file_put_contents('zfdeploy.phar', file_get_contents('https://packages.zendframework.com/zf-deploy/zfdeploy.phar'));"

一旦您有了文件,使其可执行;在类 Unix 系统中

$ chmod 755 zfdeploy.phar

您可以使用 self-update 命令定期将 phar 文件更新到最新版本

$ zfdeploy.phar self-update

Composer 安装

运行以下 composer 命令

$ composer require "zfcampus/zf-deploy:~1.0-dev"

或者,手动将以下内容添加到您的 composer.json 文件的 require 部分

"require": {
    "zfcampus/zf-deploy": "~1.0-dev"
}

然后运行 composer update 确保模块已安装。

如果通过 composer 安装,脚本位于您的应用程序的 vendor/bin/zfdeploy.php 中。

用法

注意

如果您独立克隆此项目,脚本位于 bin/zfdeploy.php。如果您将此存储库作为您的项目的 Composer 依赖项安装,脚本位于 vendor/bin/zfdeploy.php。如果您使用 phar 文件安装,您可能需要将其添加到您的路径中或提供 phar 文件的完整路径;此时脚本名称为 zfdeploy.phar

根据您的环境,您可能需要使用您的 php 可执行文件来执行 phar 文件或 php 脚本

$ php bin/zfdeploy.php
$ php vendor/bin/zfdeploy.php
$ php zfdeploy.phar

在大多数类 Unix 系统中,如果您的系统中提供了 /usr/bin/env,则脚本和 phar 文件都应该是自执行的。

在我们的示例中,无论您如何安装它或确定您需要执行它,我们都将脚本称为 zfdeploy

可以使用以下命令执行命令行工具

$ zfdeploy build <package>

其中 <package> 是要生成的输出包的文件名。在没有其他参数的情况下运行时,它假定当前目录应该被打包;如果您想指定不同的目录进行打包,请使用 --target 标志

$ zfdeploy build <package> --target path/to/application

您可以直接在 <package> 中指定文件格式,使用正确的扩展名(例如,application.zip 将创建一个 ZIP 文件)。

zfdeploy 包含以下命令

$ zfdeploy
ZFDeploy, version 0.3.0-dev

Available commands:

 build          Build a deployment package
 help           Get help for individual commands
 self-update    Updates zfdeploy.phar to the latest version
 version        Display the version of the script

build 命令的完整语法包括

Usage:
 build <package> [--target=] [--modules=] [--vendor|-v]:vendor [--composer=] [--gitignore=] [--deploymentxml=] [--zpkdata=] [--version=]

Arguments:
 <package>      Name of the package file to create; suffix must be .zip, .tar, .tar.gz, .tgz, or .zpk
 --target       The target directory of the application to package; defaults to current working directory
 --modules      Comma-separated list of modules to include in build
 --vendor|-v    Whether or not to include the vendor directory (disabled by default)
 --composer     Whether or not to execute composer; "on" or "off" ("on" by default)
 --gitignore    Whether or not to parse the .gitignore file to determine what files/folders to exclude; "on" or "off" ("on" by default)
 --configs      Path to directory containing application config files to include in the package
 --deploymentxmlPath to a custom deployment.xml to use when building a ZPK package
 --zpkdata      Path to a directory containing ZPK package assets (deployment.xml, logo, scripts, etc.)
 --version      Specific application version to use for a ZPK package

此部署工具使用 .gitignore 文件处理与特定环境相关的本地配置文件。如果您的应用程序使用 .gitignore 文件来排除本地配置文件,例如 /config/autoload 文件夹中的 local.php 文件,ZFdeploy 将不会将这些文件包含在部署包中。您可以使用 --gitignore off 选项禁用 .gitignore 文件的使用。

注意:如果您禁用了 .gitignore 的使用

如果您使用 --gitignore off 选项禁用了 .gitignore,则 ZF 应用程序的所有文件都将包含在包中。这意味着本地配置文件,包括数据库凭证等敏感信息,将在生产环境中部署!!!请在关闭 gitignore 选项之前考虑此行为。

部署 ZF 应用程序的另一重要部分是使用 composer

ZFDeploy 在创建部署包期间执行以下 composer 命令

$ php composer.phar install --no-dev --prefer-dist --optimize-autoloader

--no-dev 标志确保不在生产环境中安装开发包。如果可能,使用 --prefer-dist 选项告诉 composer 从 dist 安装。这可以在构建服务器和其他通常不运行供应商更新的用例中显著加快安装速度。使用 --optimize-autoloader 标志通过构建“类映射”使 Composer 的自动加载器更高效。

有关 Composer 的更多信息,您可以阅读项目的 文档 页面。

注意:生产配置

Zend Framework 应用程序通常在 config\autoload/ 中包含 {,*.}local.php 文件,用于提供特定环境的配置。(在 Apigility 中,这可能包括数据库配置、认证配置等)。这些文件通过 .gitignore 指令从版本控制中排除,并且默认情况下不包括在打包中。

您希望用于生产环境的设置通常与开发环境中的设置不同,并且您可以通过多种方式将其推送到生产环境——通过 Chef、Puppet、Ansible 等。另一种选项是在构建您的包时使用 --configs 标志。您可以通过包含生产配置文件的目录传递,然后这些文件将包含在您的部署包中。

获取帮助

help 命令可以列出所有可用命令,以及提供每个命令的语法

  • zfdeploy help 将列出所有可用的命令。
  • zfdeploy help <command> 将显示指定命令的使用方法。