我在处理测试项目(尝试学习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
。