sparkfabrik / drush-pre-deploy
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 hooks,在你需要在部署过程结束时执行代码时非常有用。
此项目引入了“预部署”钩子的概念,这些钩子是在部署过程的一开始执行的。
它们的格式与现有的钩子类似,如果你的模块名为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版本。
- 确保在项目的主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