Zend framework2 类似于ZF2中ZF1的getScriptPath函数

Zend framework2 类似于ZF2中ZF1的getScriptPath函数,zend-framework2,Zend Framework2,我目前正在将我的ZF1应用程序映射到ZF2,想知道ZF2中是否有类似于ZF1的$this->view->getScriptPath()?我已经花了半天时间,但没有找到好的解决办法。至少可以获得模块的基本路径或模块的模板文件夹根据后续问题,您真正需要的是到给定模板文件的路径。这实际上相对容易,假设您使用的是默认的PhpRenderer:您获取解析器,并解析路径 如果您已经在视图脚本中,则应执行以下操作: $path = $this->resolver($templateName); 如果您

我目前正在将我的ZF1应用程序映射到ZF2,想知道ZF2中是否有类似于ZF1的
$this->view->getScriptPath()
?我已经花了半天时间,但没有找到好的解决办法。至少可以获得模块基本路径或模块的模板文件夹

根据后续问题,您真正需要的是到给定模板文件的路径。这实际上相对容易,假设您使用的是默认的PhpRenderer:您获取解析器,并解析路径

如果您已经在视图脚本中,则应执行以下操作:

$path = $this->resolver($templateName);
如果您在其他地方,则需要访问PhpRenderer或viewsolver。如果您有权访问服务管理器,请拉取ViewResolver服务,并对其调用resolve():


这比知道模块所在的位置要好,因为开发人员可能已经选择覆盖应用程序中的模板;解析程序甚至会知道新位置在哪里。

根据后续问题,您真正要查找的是给定模板文件的路径。这实际上相对容易,假设您使用的是默认的PhpRenderer:您获取解析器,并解析路径

如果您已经在视图脚本中,则应执行以下操作:

$path = $this->resolver($templateName);
如果您在其他地方,则需要访问PhpRenderer或viewsolver。如果您有权访问服务管理器,请拉取ViewResolver服务,并对其调用resolve():


这比知道模块所在的位置要好,因为开发人员可能已经选择覆盖应用程序中的模板;解析程序甚至会知道新位置在哪里。

我想这只有在我之前在配置中设置了路径时才起作用。我希望检索到存储此特定控制器模板的模板文件夹的路径,而不是模板文件的路径。这就是ZF1中的
getScriptPath
所做的。Matthias--ZF2的操作不同。此时解析程序会处理这个问题,ZF2中的假设是模板可以驻留在任何地方——考虑到应用程序由许多模块组成,有些模块可能会覆盖其他模块,为给定模块指定规范脚本路径的想法没有意义。因此,您只能解析单个模板的路径。我想只有在之前的配置中设置了路径时,这才有效。我希望检索到存储此特定控制器模板的模板文件夹的路径,而不是模板文件的路径。这就是ZF1中的
getScriptPath
所做的。Matthias--ZF2的操作不同。此时解析程序会处理这个问题,ZF2中的假设是模板可以驻留在任何地方——考虑到应用程序由许多模块组成,有些模块可能会覆盖其他模块,为给定模块指定规范脚本路径的想法没有意义。因此,您只能解析单个模板的路径。