yii2tech / install
为Yii2框架提供项目安装支持扩展
Requires
- yiisoft/yii2: ~2.0.13
Suggests
- yii2tech/crontab: you need this package, if you wish to setup crontab during project installation
README
为Yii 2安装扩展
此扩展提供自动化初始化项目工作副本的能力,包括创建本地目录和文件、运行数据库迁移等。
有关许可证信息,请查看LICENSE文件。
要求
此扩展需要Linux操作系统。
安装
安装此扩展的首选方式是通过composer。
运行以下命令之一:
php composer.phar require --prefer-dist yii2tech/install
或者
"yii2tech/install": "*"
将其添加到您的composer.json的require部分。
如果您希望在项目安装期间设置crontab,您还需要安装yii2tech/crontab,这是默认不要求的。为了做到这一点,您可以运行
php composer.phar require --prefer-dist yii2tech/crontab
或者
"yii2tech/crontab": "*"
将其添加到您的composer.json的require部分。
用法
此扩展提供特殊的控制台控制器[[yii2tech\install\InitController]],允许初始化项目工作副本。此类初始化包括
- 检查当前环境是否符合项目要求。
- 创建本地目录(可能不在版本控制系统中存储的目录)并使其可写。
- 从模板创建本地文件,例如配置文件。
- 运行额外的shell命令,如'yii migrate'命令。
- 设置cron作业。
为了创建安装器,您应该创建一个独立的控制台应用程序入口脚本。此脚本应该完全去除本地配置文件、数据库等!请参阅examples/install.php以获取此类脚本的示例。
一旦您有了这样的脚本,您就可以使用以下命令运行安装过程:
php install.php init
处理本地文件
[[yii2tech\install\InitController]]引入的最有趣的功能是从交互模式中的示例创建本地项目文件,例如配置文件。对于每个可能根据实际项目环境而内容不同的文件,您应该创建一个格式为{filename}.sample
的模板文件。此文件应位于实际本地文件应出现的同一目录下。在模板文件中,您可以使用格式为{{placeholderName}}
的占位符。例如
defined('YII_DEBUG') or define('YII_DEBUG', {{yiiDebug}}); defined('YII_ENV') or define('YII_ENV', '{{yiiEnv}}'); return [ 'components' => [ 'db' => [ 'dsn' => 'mysql:host={{dbHost}};dbname={{dbName}}', 'username' => '{{dbUser}}', 'password' => '{{dbPassword}}', ], ], ];
在处理过程中,文件模板会被解析,对于所有找到的占位符,都会提示用户输入相应的值。您可以通过设置 [[yii2tech\install\InitController::localFilePlaceholders]],指定提示、类型和验证规则,使此过程更加用户友好。有关详细信息,请参阅 [[yii2tech\install\LocalFilePlaceholder]]。
非交互式安装
请求用户输入特定占位符值可能不够高效,有时甚至不可接受。您可能需要在完全自动模式下运行项目安装,例如在更新源代码后进行自动项目更新。为了禁用任何用户交互,您应该使用 interactive
选项
php install.php init --interactive=0
在此模式下,对于所有本地文件占位符将采用默认值,但前提是这些值已通过 [[yii2tech\install\InitController::localFilePlaceholders]] 明确定义。因为安装条目脚本通常存储在版本控制系统下,而本地文件占位符值(以及其他安装参数)可能根据特定环境而变化,[[yii2tech\install\InitController]] 引入了 'config' 选项。使用此选项,您可以指定额外的配置文件,该文件应与预定义参数合并。要创建此类配置文件,您可以使用以下
php install.php init/config @app/config/install.php
一旦您调整了创建的配置文件,就可以使用它来运行安装
php install.php init --config=@app/config/install.php --interactive=0