Php 如何将phtml视图文件与自定义视图帮助器绑定

Php 如何将phtml视图文件与自定义视图帮助器绑定,php,view,zend-framework2,Php,View,Zend Framework2,我想为页面上的几个控件创建自定义视图帮助器。我决定使用自定义视图帮助器,因为这些控件对于不同的用户(已登录和未登录)可能不同。然而,我想为我的视图设置布局文件,而不是仅仅在调用函数中返回html代码。有可能这样做吗?或者只有子视图允许为它们设置phtml视图文件 编辑(因为我的问题引起了很多困惑) 这是我的视图助手调用函数: public function __invoke() { $authService = new AuthenticationService(); $body

我想为页面上的几个控件创建自定义视图帮助器。我决定使用自定义视图帮助器,因为这些控件对于不同的用户(已登录和未登录)可能不同。然而,我想为我的视图设置布局文件,而不是仅仅在调用函数中返回html代码。有可能这样做吗?或者只有子视图允许为它们设置phtml视图文件

编辑(因为我的问题引起了很多困惑) 这是我的视图助手调用函数:

public function __invoke()
{
    $authService = new AuthenticationService();
    $body = "<ul class='nav navbar-nav navbar-right'>";
    if(!$authService->hasIdentity())
    {
        $body .= $this->wrapLi($this->makeUrl($this->view->url('users/default', array('controller' => 'register')),  $this->view->translate('Register')));
        $body .= $this->wrapLi($this->makeUrl($this->view->url('users/default', array('controller' => 'login')),  $this->view->translate('Login')));
    }
    if($authService->hasIdentity())
    {
        $body .= $this->wrapLi($this->makeUrl($this->view->url('users/default', array('controller' => 'logout')),  $this->view->translate('Logout')));
    }
    $body .= "</ul>";
    return $body;
}
公共函数调用() { $authService=newauthenticationservice(); $body=“”; 返回$body; } 正如您可能看到的,它只返回html。 我在layout.html中使用此帮助程序的方式如下:

<?php echo $this->LoginViewHelper(); ?>


我想知道是否有其他方法可以创建由invoke函数返回的html。如果有可能制作模板。

我想您可能有点迷路了,加载html的方法是使用视图,这些视图通常是从控制器调用的,您可以识别它们,因为它们在方法名称的末尾有action一词

我建议您安装zend framework 2框架,它已经提供了一个包含一些视图和控制器的模块

但是如果你想做一些像你现在想做的事情。您可以在应用程序模块上创建一个名为Helper的新文件夹,定义一个名称空间,如第一行:

namespace Application\Helper;
然后创建一个静态方法:

class H {
    public static function LoginViewHelper(){

    }
}
在你看来,就这样称呼它吧

<?php echo \Application\Helper\H::LoginViewHelper() ?>


我完全不明白你的问题。似乎你问了三个不同的问题,你能澄清并专注于一个问题吗?关于视图帮助程序的创建,您是否阅读了手册以及如何自己创建视图帮助程序?我已经完成了自己的视图帮助程序,它返回了一些html。在这一刻它运转良好。然而,我想知道是否有可能为它创建一些视图,就像为常规视图创建一样。而不是返回纯html。视图脚本是纯文本文件。可以访问视图脚本中的视图辅助对象,甚至可以在视图辅助对象中渲染其他视图脚本。这就是您的问题,如何在视图帮助器中呈现视图脚本?