sparkfabrik / drush_pre_deploy
此包已被废弃,不再维护。作者建议使用 drupal/drush_pre_deploy 包。
drush 集成,允许启用 "预部署" 钩子。
0.0.4
2020-09-29 07:46 UTC
Requires (Dev)
- drupal/coder: ^8
Conflicts
- drush/drush: <10.3.0
README
此项目是一个 drush 集成,允许启用 "预部署" 钩子。
Drush 10 引入了 drush deploy 命令,旨在标准化 Drupal 部署。 drush deploy
是通过一系列标准的 drush 命令实现的
drush updatedb --no-cache-clear
drush cache:rebuild
drush config:import
drush cache:rebuild
drush deploy:hook
最后一步(drush deploy:hook
)会调用 HOOK_deploy_NAME 钩子。 "部署" 钩子类似于 post_update 钩子,在你需要在部署过程的最后执行代码时非常有用。
此项目引入了在部署过程 最开始 执行的 "预部署" 钩子的概念。
它们具有类似现有钩子的形式,如果你的模块名为 foo
,那么在一个 foo.predeploy.php
文件中,你可以编写如下函数
/**
* Hook description here.
*/
function foo_predeploy_some_text_here(&$sandbox) {
}
此外,此项目提供了 deploy:pre-hook
和 deploy:pre-hook-status
命令,这些命令类似于 deploy:hook 和 deploy:hook-status 命令。第一个命令运行挂起的 "预部署" 钩子,第二个命令打印有关挂起的 "预部署" 更新钩子的信息。
安装
composer require sparkfabrik/drush_pre_deploy
此项目需要 drush 至少为 10.3.0 版本。
- 确保在项目的 main composer.json 中为 "drupal-module" 类型设置了 installer-paths 文件夹
"extra": {
...
"installer-paths": {
...
"web/modules/contrib/{$name}": ["type:drupal-module"],
为了确保钩子命令被发现,你需要在 drush 文件夹中添加一个自定义的 "drush.yml" 配置,如下所示
.
└── ROOT_PROJECT_PATH/
└── drush/
└── drush.yml
Drush 将自动发现此文件并使用其配置来加载命令。将以下代码添加到 drush.yml 中
drush:
include:
- ${env.PWD}/web/modules/contrib/drush_pre_deploy/src/global