Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ZEND:在模块引导中加载自定义类_Php_Zend Framework_Zend App Bootstrap - Fatal编程技术网

Php ZEND:在模块引导中加载自定义类

Php ZEND:在模块引导中加载自定义类,php,zend-framework,zend-app-bootstrap,Php,Zend Framework,Zend App Bootstrap,我想调用位于myModule/Bootstrap.php中的myModule/myFolders/myFile.php中的自定义类 这就是它现在的样子: <?php class Users_Bootstrap extends Zend_Application_Module_Bootstrap { public function _initAutoload() { Zend_Loader_Autoloader::getInstance()-

我想调用位于myModule/Bootstrap.php中的myModule/myFolders/myFile.php中的自定义类

这就是它现在的样子:

    <?php

    class Users_Bootstrap extends Zend_Application_Module_Bootstrap {

        public function _initAutoload() {
        Zend_Loader_Autoloader::getInstance()->pushAutoloader(new NAMESPACE_Excel_ExcelAutoLoader()); // This workes fine

        new Myfolder_Myfile();  // THIS IS WHERE I'm CALLING my CLASS

}

        public function _initRoutes() {

            $router = Zend_Controller_Front::getInstance()->getRouter();

             $listUsersRoute = new Zend_Controller_Router_Route("admin/users/manage", array(
               'module' => 'users',
               'controller' => 'admin',
               'action' => 'index'      ));

            $router->addRoute('listUsersRoute', $listUsersRoute);


        }     }

有很多方法可以完成你想做的事情。首先,我想问-是否需要在许多地方重用MyFolder\u MyFile()类?如果不是,您可以考虑将该类的逻辑转换为它自己的自定义引导程序,它扩展了您的UsSersBootstrap。然后,你会有这样的东西:

MyFolder_MyFileBootstrap extends Users_Bootstrap
然后,您可以选择创建单独的_init*方法,或者只是为了保持编写时的兼容性,您可以创建一个新的_initAutoload(),首先执行父级,然后执行您自己的任何逻辑

MyFolder\u MyFileBootstrap::\u initAutoload()

但是,如果此解决方案将彻底改变您编写应用程序的方式,则需要使用Zend Framework Autoloader的名称空间方法添加该文件

对于您的示例,您可以在_initAutoloader()方法中尝试以下操作:

根据您的文件布局,您可能需要对此进行一些调整

public function _initAutload() {
    parent::_initAutload();
    // my own logic here
}
$applicationAutoloader = $this->getResourceLoader();
$applicationAutloader->addResourceType('myfolder', 'MyFolder', 'MyFolder');