gpt4 book ai didi

zend-framework - 如何在 zend Controller 中自动加载单例类(私有(private)构造函数)?

转载 作者:行者123 更新时间:2023-12-04 04:27:16 24 4
gpt4 key购买 nike

我的模型目录中有一个单例类,我必须在 Controller 类中使用它的功能。通过 require_once('文件路径');并将函数调用为 ClassName::FunctionName() 工作正常,但我需要使用 Zend Autoloader 而不是通过 require_once 包含类。我在 stackoverflow 上遇到了许多解决方案,这些解决方案使用 bootstrap.php 在那里添加以下代码,它似乎与 require_once('file path'); 做的一样。在 Controller 中做了

  protected function _initAutoload()
{
Zend_Loader_Autoloader::getInstance();
}

这样我得到 fatal error :在 {path}\controllers\SampleController.php 中找不到类 'ClassName' {line no.}我确定我遗漏了一些东西,但无法弄清楚到底是什么。

最佳答案

就像 user1145086 说得对,如果你遵循 Zend 的命名约定,你的类应该是自动加载的。

如果您有一个类,比如说 AutoloadedClass,并且您希望它自动加载,您可以执行以下操作:

  1. 在您的/library 文件夹中创建一个文件夹并将其命名为“我的”
  2. 在您的 Bootstrap 的 initAutoload 类方法中编写以下代码:

    Zend_Loader_Autoloader::getInstance()->registerNamespace(array('My_'));
  3. 将包含 'AutoloadedClass' 的文件放在您刚刚创建的 'My' 文件夹中,并将文件重命名为 AutoloadedClass.php,以便文件最终位于以下位置: /library/My/AutoloadedClass.php
  4. 最后,按照 Zend 的命名约定要求,将类本身重命名为 My_AutoloadedClass。从此以后,您可以在应用程序的任何位置使用该类名称 My_AutoloadedClass 获取对您的类的引用。

关于zend-framework - 如何在 zend Controller 中自动加载单例类(私有(private)构造函数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8846264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com