ZF2 - 如何从视图中调用自定义类 php 的函数? [英] ZF2 - How can i call a function of a custom class php from a view?

查看:21
本文介绍了ZF2 - 如何从视图中调用自定义类 php 的函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用一些函数( generateInfo() )创建了一个自定义服务作为 php 类( ServiceClass ),我正在寻找一种从其他视图调用此函数的方法

i've created a custom service as php class ( ServiceClass ) with some functions ( generateInfo() ) and i'm looking for a way to call this function from other views

感谢您的帮助.

推荐答案

您可以创建自己的视图助手

You can create your own View Helper

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 中为该助手创建一个条目:

Now create an entry in the module.config.php for that helper:

'view_helpers' => array(
    'invokables' => array(
        'myHelper' => 'MyModule\View\Helper\MyHelper',
    ),
),

现在您可以在视图中调用它:

And now you can call it in your views:

<?php echo $this->myHelper()->render($arg1, $arg2); ?>

用于调用 generateInfo():

And for calling the generateInfo():

<?php echo $this->myHelper()->generateInfo(); ?>

您也可以从控制器调用它:

You can also call it from a controller:

$viewHelperManager = $this->getServiceLocator()->get('ViewHelperManager');
$myHelper = $viewHelperManager->get('myHelper');

没有视图助手

不是最佳做法,因为这会生成重复的代码,但是,如果您不想创建视图助手,那么您始终可以在控制器中创建服务的实例,然后将其传递给视图.

Not the best practice because this generates repeated code but, if you do not want to create a View Helper, then you can always create an instance of your service in a controller and then pass it to the View.

这篇关于ZF2 - 如何从视图中调用自定义类 php 的函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆