ZF-2在模块控制器文件操作方法中获取模块名称

时间:2014-08-14 07:40:04

标签: php zend-framework2

我想在其控制器操作方法中获取当前模块名称

非常感谢任何帮助

 public function initAction()
{
  parent::initAction();

 die(var_dump(module name here));   
}

谢谢!

2 个答案:

答案 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