【问题标题】:What is the autoload class names structure, for the root "library" dir in a Zend Framework 1.10.2 project?Zend Framework 1.10.2 项目中的根“库”目录的自动加载类名结构是什么?
【发布时间】:2010-03-23 14:06:53
【问题描述】:

我有一个使用 Zend Framework 1.10.2 创建的项目。

我通常使用 application/models 目录来存放我创建的新模型文件,并且自动加载很好,例如 - My_Model_SampleClass 位于 application/models/SampleClass.php。

但是,我刚刚创建了一个自定义 Exception 类,它不适合应用程序目录中的模型目录(至少在我看来,我可能在逻辑上是错误的),所以我创建了它根“库”目录,但我似乎找不到要使用的正确类名+文件名,因此自动加载将正确完成。

顺便说一句,我为我使用的所有自定义类都使用了一个命名空间,假设它是“我的”。

【问题讨论】:

    标签: zend-framework autoload


    【解决方案1】:

    如果你使用 application.ini 试试这个

    autoloader.namespace = My
    autoloader.resourceTypes.exceptions.path = "library"
    autoloader.resourceTypes.exceptions.namespace = "Model"
    

    【讨论】:

      【解决方案2】:
      class My_Exception extends Zend_Exception {}
      

      保存在:

      /library/My/Exception.php
      

      在 application.ini 中:

      autoloaderNamespaces[] = "My_"
      

      或查看resourceLoader:

      // in Bootstrap.php
      Zend_Debug::dump($this->_resourceLoader);
      

      你可以这样使用它:

      $this->_resourceLoader->addResourceType('exception', 'exceptions', 'My_');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-19
        • 1970-01-01
        • 1970-01-01
        • 2022-01-01
        • 1970-01-01
        相关资源
        最近更新 更多