我想在其控制器操作方法中获取当前模块名称
非常感谢任何帮助
public function initAction()
{
parent::initAction();
die(var_dump(module name here));
}
谢谢!
答案 0 :(得分:4)
我认为获取当前模块名称的最简单方法是使用魔术__NAMESPACE__
常量。
在您的控制器中,试试这个:
$modulename = explode('\\', __NAMESPACE__, -1);
var_dump($modulename); // [0] => 'Application'
您还可以通过ModuleManager获取已加载模块的列表,如下所示:
$manager = $this->getServiceLocator()->get('ModuleManager');
$manager->getLoadedModules();
答案 1 :(得分:2)
您可以从当前的namespace
获取它。
在您的控制器操作中,您可以执行此操作:
public function initAction()
{
parent::initAction();
$controllerClass = get_class($this);
$moduleName = substr($controllerClass, 0, strpos($controllerClass, '\\'));
die($moduleName);
}
示例:
Administration\Controller;
Administration