首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drush_get_commands()不返回特性Drush命令

drush_get_commands()不返回特性Drush命令
EN

Drupal用户
提问于 2014-08-30 23:25:45
回答 1查看 89关注 0票数 3

我预计drush_get_commands()将返回所有drush命令,包括来自“feature”等模块的命令,但在我的Drush自定义命令中调用它时不会返回。如何检索当前drupal实例可用的所有drush命令,包括自定义模块提供的命令?谢谢

EN

回答 1

Drupal用户

回答已采纳

发布于 2014-08-31 03:05:39

重要的是要记住,drush_get_commands()对您的命令已经达到的引导级别很敏感。您必须已经引导了一个Drupal站点,才能通过drush_get_commands()获得与该站点中的模块相关的Drush命令。要做到这一点,有几个要求。

  1. 在运行自定义Drush命令时,您必须选择了一个Drupal站点,要么使用站点别名(例如drush @mysite),要么使用命令行选项(例如drush -root=/path/ to /drupal=mysite.org),或者将当前工作目录设置为包含站点settings.php文件的同一个目录。
  2. 您的自定义命令必须声明一个足以引导Drupal站点的引导级别。例如,DRUSH_BOOTSTRAP_DRUSH是不够的,但是DRUSH_BOOTSTRAP_FULL是。如果您的命令没有引导到足够高的级别,您可以调用drush_bootstrap_max()来完成所选站点的引导。
  3. 只有已启用的模块才会加载Drush命令。

如果您做了所有这些事情,那么当您调用drush_get_commands()时,您应该会看到所有模块的所有命令。如果没有,请尝试drush cc drush清除命令文件缓存。

(另外,请注意,不要使用drush_get_commands()作为从自定义命令文件调用其他Drush命令的方式。相反,使用drush_invoke_process()。)

票数 3
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/128303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档