StandardAutoload 不起作用,而 ClassAutoload 不起作用



我在处理测试项目(尝试学习ZF2)时收到php致命错误"找不到类"。

    return array(
        'ZendLoaderClassMapAutoloader' => array(
            __DIR__ . '/classmap.php',
        ),
        'ZendLoaderStandardAutoloader' => array(
            'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
            ),
        ),
    );

问题很简单,如果我不包括我的类映射,我的 enties dosnt 会自动加载,这是"好的"(就像现在一样),但我真的很想知道问题在哪里以及出了什么问题......

我的类映射.php文件如下所示:

<?php
// Generated by Zend Framework 2
return array(
        'CommonEntityProperty' => __DIR__ . '/src/Common/Entity/property.php',
        'CommonEntityDomain'   => __DIR__ . '/src/Common/Entity/domain.php',
        'CommonModule'          => __DIR__ . '/Module.php',
);

我的错误日志如下所示:

[Sun Nov 30 17:16:40 2014] [error] [client 172.30.30.6] PHP Fatal error: 
    Class 'Common\Entity\Domain' not found in
     /var/www/hosts.legetimen.no/module/Frontpage/src/Frontpage/Controller/IndexController.php
     on line 38

(我已经测试了我的Modeule.php用die("测试");以确保它被加载等)

[编辑]我的模块的目录结构 常见:

$ tree Common
Common
├── classmap.php
├── config
│   └── module.config.php
├── Module.php
└── src
    └── Common
        ├── Controller
        └── Entity
            ├── domain.php
            └── property.php

谢谢!

在您的错误消息中,您Class 'Common\Entity\Domain' not found in...因此标准自动加载器正在寻找Domain.php文件而不是domain.php因此只需更改为文件名的大写首字母即可。

ClassMap自动加载器没有这个问题,因为例如CommonEntityProperty正确地映射到/src/Common/Entity/property.php

最新更新