mikemix / zf-deploy
ZF2 应用程序的部署工具
Requires
- php: >=5.3.23
- herrera-io/phar-update: ~1.0
- zendframework/zend-console: ~2.0
- zendframework/zend-filter: ~2.0
- zfcampus/zf-console: ~1.0
Requires (Dev)
- fabpot/php-cs-fixer: *@dev
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2019-08-19 07:04:36 UTC
README
介绍
ZFDeploy 是一个用于部署 Zend Framework 2 应用的命令行工具。
此工具会生成一个准备部署的文件包。工具支持以下格式: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,那么 ZF2 应用程序的所有文件都将包含在包中。这意味着本地配置文件,包括敏感信息如数据库凭据,将在生产环境中部署!!!请在关闭 gitignore 选项之前考虑此行为。
部署 ZF2 应用程序的另一个重要部分是使用 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 2 应用程序通常在
config\autoload/中包含{,*.}local.php文件,用于提供特定环境的配置。(在 Apigility 中,这可能包括数据库配置、认证配置等)。这些文件通过.gitignore指令从版本控制中排除——并且默认情况下也排除在打包之外。您希望用于生产的设置通常会与开发环境中的设置不同,并且您可以通过多种方式将它们推送到生产环境——通过 Chef、Puppet、Ansible 等。另一个选项是在构建包时使用
--configs标志。您可以传递一个包含生产配置文件的目录,然后这些文件将包含在您的部署包中。
获取帮助
help 命令可以列出可用的命令,以及为每个命令提供语法
zfdeploy help将列出所有可用的命令。zfdeploy help <command>将显示指定命令的用法。