在布局模板中的zend框架2(2.3)中添加自定义库


Adding custom library in zend framework 2 (2.3) in layout template

我有个问题。我想在Web应用程序启动时添加我的自定义库,并在应用程序布局中使用它。我想创建一个表单(由2个串联的select和ajax函数组成),它必须在应用程序的所有部分都可见。当我尝试使用我的助手自定义库时,这是错误消息:

Fatal error: Class 'SelectSearchList' not found in C:'Program Files (x86)'xampp'htdocs'Easyanimal'module'Application'view'layout'layout.phtml on line 118

这是vendor/comporter/autoload_namespaces.hp:的代码

<?php
// autoload_namespaces.php generated by Composer
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
    'Zend''' => $vendorDir . '/zendframework/zendframework/library/',
    'ZendTest''' => $vendorDir . '/zendframework/zendframework/tests/',
    'MyHelpLib''' => $vendorDir . '/MyHelpLib/',
);

这是我在vendor/MyHelpLib/LoaderSelect.php中的帮助库:

  namespace MyHelpLib
class SelectSearchList {
    public $select;
    public function showOpt (){
        return $select = '<option value="">Select...</option>'; 
    }

} 

这是我在应用程序/视图/布局中的布局

<?php
                     use MyHelpLib'LoaderSelect;
                     $Opt = new SelectSearchList();  
                     echo $Opt->showOpt();
                    ?>

我试着在Application/module.php中添加这个,但它又不起作用了!

public function getAutoloaderConfig()
    {
        return array(
            'Zend'Loader'StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                    'MyHelpLib' => __DIR__ . '/../../vendor/MyHelpLib',
                ),
            ),
        );
    }

非常感谢的帮助

创建视图辅助对象。http://framework.zend.com/manual/2.3/en/modules/zend.view.helpers.advanced-usage.html#writing-自定义助手

Index''src''View''Helper''MyHelpLib

namespace Index'View'Helper;
use Zend'View'Helper'AbstractHelper;
class MyHelpLib extends AbstractHelper
{
    public function __invoke()
    {
        return 'MyHelper'
    }
}

Index''config''module.config.php

return array(
    ...
    'view_helpers' => array(
        'invokables' => array(
            'MyHelpLib' => ''Index'View'Helper'MyHelpLib'
        )
    )
);

layout.phtml

echo $this->MyHelpLib();