Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ZF-2在模块控制器文件操作方法中获取模块名称_Php_Zend Framework2 - Fatal编程技术网

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

Php ZF-2在模块控制器文件操作方法中获取模块名称,php,zend-framework2,Php,Zend Framework2,我想在其控制器操作方法中获取当前模块名称 非常感谢您的帮助 public function initAction() { parent::initAction(); die(var_dump(module name here)); } 谢谢 您可以从当前的命名空间中获取它 在控制器操作中,您可以执行以下操作: public function initAction() { parent::initAction(); $controllerClass = get_class

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

非常感谢您的帮助

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

 die(var_dump(module name here));   
}

谢谢

您可以从当前的
命名空间中获取它

在控制器操作中,您可以执行以下操作:

public function initAction()
{
  parent::initAction();
  $controllerClass = get_class($this);
  $moduleName = substr($controllerClass, 0, strpos($controllerClass, '\\'));
  die($moduleName);  
}
示例:

  • 命名空间:
    Administration\Controller
  • 输出:
    管理

我认为获取当前模块名称的最简单方法是使用magic
\uuuuu名称空间\uuuuuu
常量

在控制器中,尝试以下操作:

$modulename = explode('\\', __NAMESPACE__, -1);
var_dump($modulename); // [0] => 'Application'
您还可以通过ModuleManager获得已加载模块的列表,如下所示:

$manager = $this->getServiceLocator()->get('ModuleManager');
$manager->getLoadedModules();

我真的很喜欢模块管理器简洁明了的想法,但是我如何从$manager->getLoadedModules()获取当前模块的名称呢@PradeepSrivastava答案是你不能<代码>$manager->getLoadedModules()if(在_数组('moduleName',$manager->getLoadedModules())