0

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

    return array(
        'Zend\Loader\ClassMapAutoloader' => array(
            __DIR__ . '/classmap.php',
        ),
        'Zend\Loader\StandardAutoloader' => array(
            'namespaces' => array(
                __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
            ),
        ),
    );

问题很简单,如果我不包含我的类图,我的实体不会自动加载,这是“好的”(因为它现在可以工作),但我真的很想知道问题出在哪里以及出了什么问题......

我的 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

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

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

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

谢谢!

4

1 回答 1

1

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

ClassMapAutoloader 没有这个问题,因为例如Common\Entity\Property正确映射到/src/Common/Entity/property.php.

于 2014-11-30T19:25:48.720 回答