ZF2 - 如何从视图中调用自定义 class php 的函数?
ZF2 - How can i call a function of a custom class php from a view?
我已经创建了一个自定义服务 php class ( ServiceClass ) 和一些功能 ( generateInfo() ) 我正在寻找一种从其他视图调用此功能的方法
感谢您的帮助。
您可以创建自己的视图助手
namespace MyModule\View\Helper;
use Zend\View\Helper\AbstractHelper;
class MyHelper extends AbstractHelper
{
public function __invoke()
{
return $this;
}
public function render($arg1, $arg2)
{
return 'My Parametrizable Html ' . $arg1 . ' ' . $arg2;
}
public function generateInfo()
{
return 'Your HTML goes here';
}
}
现在在 module.config.php 中为该助手创建一个条目:
'view_helpers' => array(
'invokables' => array(
'myHelper' => 'MyModule\View\Helper\MyHelper',
),
),
现在您可以在您的视图中调用它了:
<?php echo $this->myHelper()->render($arg1, $arg2); ?>
并调用 generateInfo():
<?php echo $this->myHelper()->generateInfo(); ?>
您也可以从控制器调用它:
$viewHelperManager = $this->getServiceLocator()->get('ViewHelperManager');
$myHelper = $viewHelperManager->get('myHelper');
没有视图助手
这不是最佳做法,因为这会生成重复的代码,但是,如果您不想创建 View Helper,那么您始终可以在控制器中创建服务实例,然后将其传递给 View。
我已经创建了一个自定义服务 php class ( ServiceClass ) 和一些功能 ( generateInfo() ) 我正在寻找一种从其他视图调用此功能的方法
感谢您的帮助。
您可以创建自己的视图助手
namespace MyModule\View\Helper;
use Zend\View\Helper\AbstractHelper;
class MyHelper extends AbstractHelper
{
public function __invoke()
{
return $this;
}
public function render($arg1, $arg2)
{
return 'My Parametrizable Html ' . $arg1 . ' ' . $arg2;
}
public function generateInfo()
{
return 'Your HTML goes here';
}
}
现在在 module.config.php 中为该助手创建一个条目:
'view_helpers' => array(
'invokables' => array(
'myHelper' => 'MyModule\View\Helper\MyHelper',
),
),
现在您可以在您的视图中调用它了:
<?php echo $this->myHelper()->render($arg1, $arg2); ?>
并调用 generateInfo():
<?php echo $this->myHelper()->generateInfo(); ?>
您也可以从控制器调用它:
$viewHelperManager = $this->getServiceLocator()->get('ViewHelperManager');
$myHelper = $viewHelperManager->get('myHelper');
没有视图助手
这不是最佳做法,因为这会生成重复的代码,但是,如果您不想创建 View Helper,那么您始终可以在控制器中创建服务实例,然后将其传递给 View。