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

时间:2014-09-09 15:09:02

标签: php zend-framework

我有问题。我想在webapplication启动时添加我的自定义库,我想在应用程序布局中使用它。我想创建一个表单(由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 / composer / autoload_namespaces.php的代码:

<?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>'; 
    }


} 

这是我在application / view / layout

中的布局
<?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',
                ),
            ),
        );
    }

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

创建视图助手。 http://framework.zend.com/manual/2.3/en/modules/zend.view.helpers.advanced-usage.html#writing-custom-helpers

索引\ SRC \视图\助手\ MyHelpLib

namespace Index\View\Helper;
use Zend\View\Helper\AbstractHelper;

class MyHelpLib extends AbstractHelper
{
    public function __invoke()
    {
        return 'MyHelper'
    }
}

索引\设置\ module.config.php

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

layout.phtml

echo $this->MyHelpLib();