Zend:我在哪里可以在zend文件夹结构中放置自定义类?

时间:2022-04-09 18:05:51

I want to put projecct dependent custom class in zend folder structure. I googled and found that we can put it in models folder, but we use models folder for database related classes. So I am confuse. Please help where can i put it so i can access it by directory mapping?

我想在zend文件夹结构中放置项目依赖的自定义类。我用谷歌搜索,发现我们可以将它放在模型文件夹中,但我们使用模型文件夹来存储数据库相关的类。所以我很困惑。请帮助我在哪里可以放置它,以便我可以通过目录映射访问它?

2 个解决方案

#1


3  

This is my way:

这是我的方式:

I create in library path, folder 'My'. There I put file Utils.php.

我在库路径中创建文件夹'My'。在那里我把文件Utils.php。

So in Utils.php I have class

所以在Utils.php我有课

class My_Utils { /* some functions... */ }

in configs/application.ini autoload namespace 'My' with this line:

在configs / application.ini中使用此行自动加载命名空间“我的”:

autoloaderNamespaces.my = "My_"

So in controller you can use that class like

所以在控制器中你可以使用那个类

$utils = new My_Utils();
$utils->someFunction();

Other way, you can autoload that folder(My) in bootstrap

另外,您可以在bootstrap中自动加载该文件夹(My)

protected function _initAutoLoad() {
// Add autoloader empty namespace
$autoLoader = Zend_Loader_Autoloader::getInstance();
$resourceLoader = new Zend_Loader_Autoloader_Resource(
        array(
            'basePath'      => APPLICATION_PATH,
            'namespace'     => '',
            'resourceTypes' => array(
            'model'         => array(
                    'path'      => '../library/My/',
                    'namespace' => 'My_'
                ),
            ),
        )
);
return $resourceLoader;
}

#2


0  

Look up autoloading in Zend.

在Zend中查找自动加载。

This will let you define your own application folder and then include the ZF library.

这将允许您定义自己的应用程序文件夹,然后包含ZF库。

From this application folder you can do as you wish when it comes to folders and classes and the autoloader will load them all for you without the need for includes or requires.

从这个应用程序文件夹中,您可以按照自己的意愿进行文件夹和类,自动加载器将为您加载所有文件夹和类,而无需包含或要求。

#1


3  

This is my way:

这是我的方式:

I create in library path, folder 'My'. There I put file Utils.php.

我在库路径中创建文件夹'My'。在那里我把文件Utils.php。

So in Utils.php I have class

所以在Utils.php我有课

class My_Utils { /* some functions... */ }

in configs/application.ini autoload namespace 'My' with this line:

在configs / application.ini中使用此行自动加载命名空间“我的”:

autoloaderNamespaces.my = "My_"

So in controller you can use that class like

所以在控制器中你可以使用那个类

$utils = new My_Utils();
$utils->someFunction();

Other way, you can autoload that folder(My) in bootstrap

另外,您可以在bootstrap中自动加载该文件夹(My)

protected function _initAutoLoad() {
// Add autoloader empty namespace
$autoLoader = Zend_Loader_Autoloader::getInstance();
$resourceLoader = new Zend_Loader_Autoloader_Resource(
        array(
            'basePath'      => APPLICATION_PATH,
            'namespace'     => '',
            'resourceTypes' => array(
            'model'         => array(
                    'path'      => '../library/My/',
                    'namespace' => 'My_'
                ),
            ),
        )
);
return $resourceLoader;
}

#2


0  

Look up autoloading in Zend.

在Zend中查找自动加载。

This will let you define your own application folder and then include the ZF library.

这将允许您定义自己的应用程序文件夹,然后包含ZF库。

From this application folder you can do as you wish when it comes to folders and classes and the autoloader will load them all for you without the need for includes or requires.

从这个应用程序文件夹中,您可以按照自己的意愿进行文件夹和类,自动加载器将为您加载所有文件夹和类,而无需包含或要求。