我预计drush_get_commands()将返回所有drush命令,包括来自“feature”等模块的命令,但在我的Drush自定义命令中调用它时不会返回。如何检索当前drupal实例可用的所有drush命令,包括自定义模块提供的命令?谢谢
发布于 2014-08-31 03:05:39
重要的是要记住,drush_get_commands()对您的命令已经达到的引导级别很敏感。您必须已经引导了一个Drupal站点,才能通过drush_get_commands()获得与该站点中的模块相关的Drush命令。要做到这一点,有几个要求。
DRUSH_BOOTSTRAP_DRUSH是不够的,但是DRUSH_BOOTSTRAP_FULL是。如果您的命令没有引导到足够高的级别,您可以调用drush_bootstrap_max()来完成所选站点的引导。如果您做了所有这些事情,那么当您调用drush_get_commands()时,您应该会看到所有模块的所有命令。如果没有,请尝试drush cc drush清除命令文件缓存。
(另外,请注意,不要使用drush_get_commands()作为从自定义命令文件调用其他Drush命令的方式。相反,使用drush_invoke_process()。)
https://drupal.stackexchange.com/questions/128303
复制相似问题