zfcampus / zf-deploy
Zend Framework 应用程序部署工具
Requires
- php: ^5.6 || ^7.0
- herrera-io/phar-update: ~1.0
- zendframework/zend-filter: ^2.7.1
- zfcampus/zf-console: ^1.3
Requires (Dev)
- phpunit/phpunit: ^5.7.27 || ^6.5.8 || ^7.1.5
- zendframework/zend-coding-standard: ~1.0.0
This package is auto-updated.
Last update: 2020-01-09 17:46:18 UTC
README
仓库弃用 2019-12-31
此仓库已弃用,未提供替代方案。
介绍
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>
将显示指定命令的使用方法。