Zend framework2 在模块引导中使用basepath视图帮助程序

Zend framework2 在模块引导中使用basepath视图帮助程序,zend-framework2,Zend Framework2,我想访问我的应用程序模块引导程序中的basePath查看帮助程序。 以下是我的应用程序模块中的当前代码: public function onBootstrap(MvcEvent $e) { $viewHelperManager = $e->getApplication()->getServiceManager()->get('viewhelpermanager'); $basePath = $viewHelperManager->get('BasePath'

我想访问我的应用程序模块引导程序中的
basePath
查看帮助程序

以下是我的应用程序模块中的当前代码:

public function onBootstrap(MvcEvent $e)
{
   $viewHelperManager = $e->getApplication()->getServiceManager()->get('viewhelpermanager');
   $basePath = $viewHelperManager->get('BasePath');        
   $headScript = $viewHelperManager->get('HeadScript');
   $headScript->appendFile($basePath->basePath('/js/custom.js'));
}
我可以让headscript视图助手添加javascript,但无法访问基本路径视图助手

如果查看代码,调用是:
$basePath->basePath('/js/custom.js')

我如何做到这一点


任何帮助都将不胜感激。

在您的问题中获取帮助者的方式没有问题,唯一的问题是您试图调用帮助者方法的方式

$viewHelperManager = $e->getApplication()->getServiceManager()->get('viewhelpermanager');       
$headScript = $viewHelperManager->get('HeadScript');        
$headScript->prependFile($viewHelperManager->getRenderer()->basePath('js/bootstrap.min.js'));
$headScript->prependFile($viewHelperManager->getRenderer()->basePath('js/jquery.min.js'));
$headScript->prependFile($viewHelperManager->getRenderer()->basePath('js/respond.min.js'),'text/javascript', array('conditional' => 'lt IE 9'));
$headScript->prependFile($viewHelperManager->getRenderer()->basePath('js/html5shiv.min.js'),'text/javascript', array('conditional' => 'lt IE 9'));
BasePath视图帮助器是一个可调用的类,您可以显式调用它的
\uu invoke()
方法

$basePath = $viewHelperManager->get('BasePath');

$basePath->__invoke('js/custom.js');
或者,由于声明invoke方法允许您像调用函数一样调用对象,因此您可以这样编写相同的代码

$basePath = $viewHelperManager->get('BasePath');

$basePath('js/custom.js');

invoke到底做什么?
\u invoke
是一个神奇的方法,当您像函数一样运行类本身时会调用它。i、 e.
$basePath($arg)