php - 在 Zend Framework (v1) 应用程序中使用 PHP 命名空间

标签 php zend-framework namespaces autoload zend-autoloader

在当前稳定版本的 Zend Framework (1.11) 中是否可以使用 PHP 命名空间来处理应用程序类?

Application\Form\Abc instead of Application_Form_Abc
Application\Model\Xyz instead of Application_Model_Xyz
etc.

从 v1.10 开始,ZF 支持 autoloading namespaces ,并且在包含命名空间库时工作正常,但是当我尝试使用应用程序类执行相同的工作时却没有成功。

最佳答案

实际上有一个简单的解决方法 suggested by Dmitry on the ZF issue tracker :

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoloader()
    {
        $loader = function($className) {
            $className = str_replace('\\', '_', $className);
            Zend_Loader_Autoloader::autoload($className);
        };

        $autoloader = Zend_Loader_Autoloader::getInstance();
        $autoloader->pushAutoloader($loader, 'Application\\');
    }
}

对我来说就像一个魅力!

关于php - 在 Zend Framework (v1) 应用程序中使用 PHP 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6513529/

相关文章:

kubernetes - 让 prometheus/grafana 和 k3s 协同工作

javascript - 检查 PHP 中的复选框是否使用 javascript 进行选中

php - 什么是好的语法荧光笔?

php - 从本地系统上传后将视频转换为 .mp4 格式不显示视频只听到声音

php - MySQL Master <-> Slave、PDO、Zend 框架和事务

c++ - 类中的结构定义

php - 函数中使用语句不明确的语法错误

php - Perl pack() 函数和 "B"格式化字符到 Php

php - Zend 框架基数违规 : 1241 Operand should contain 1 column(s)

php - Zend Framework 中的 GreaterOrEqual 验证器