有没有办法获得您正在使用的模块的名称?我有一大堆模块(大约35个)具有一些常用功能.简而言之,我希望能够获得模块名称而无需在字符串中对其进行硬编码.希望这不是必要的,但这里是我想要的想法:
function MYMODULE_mycustom_hook($args) {
$sCurrModule = 'MYMODULE';
// Operations using $sCurrModule...
}
Run Code Online (Sandbox Code Playgroud)
基本上,我可以用模块名称替换'MYMODULE'并完成它,但我想知道是否有办法以编程方式获得该值.我正在使用Drupal 7.
Sum*_*and 21
如果您的模块文件是sites/default/modules/MYMODULE/MYMODULE.module模块名称是MYMODULE.
您可以使用以下命令在MYMODULE.module文件中以编程方式获取它:
$module_name = basename(__FILE__, '.module');
Run Code Online (Sandbox Code Playgroud)
虽然 OP 询问有关 D7 的问题,但这也是 Drupal 8 (D8) 的解决方案:
/** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
$module_handler = \Drupal::service('module_handler');
/** @var \Drupal\Core\Extension\Extension $module_object */
$module_object = $module_handler->getModule(basename(__FILE__, '.module'));
$module_name = $module_object->getName();
Run Code Online (Sandbox Code Playgroud)
当然,如果需要,您可以链接这些调用:
\Drupal::service('module_handler')->getModule(basename(__FILE__, '.module'))->getName()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4107 次 |
| 最近记录: |