我在测试项目(尝试学习ZF2)时收到php致命错误“Class not found”。
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
问题很简单,如果我不包括我的类图,我的entites dosnt会自动加载,这是“好的”(就像现在一样),但我真的想知道问题在哪里以及出了什么问题。
我的classmap.php文件如下所示:
<?php
// Generated by Zend Framework 2
return array(
'Common\Entity\Property' => __DIR__ . '/src/Common/Entity/property.php',
'Common\Entity\Domain' => __DIR__ . '/src/Common/Entity/domain.php',
'Common\Module' => __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(“测试”);确保它已加载等)
[编辑] 我模块的目录结构Common:
$ tree Common
Common
├── classmap.php
├── config
│ └── module.config.php
├── Module.php
└── src
└── Common
├── Controller
└── Entity
├── domain.php
└── property.php
谢谢!
答案 0 :(得分:1)
在您的错误消息中,您有Class 'Common\\Entity\\Domain' not found in...
,因此标准自动加载器正在查找Domain.php
文件,而不是domain.php
,因此只需更改为大写的文件名第一个字母。
ClassMapAutoloader没有此问题,因为例如Common\Entity\Property
正确映射到/src/Common/Entity/property.php
。