StandardAutoload не работает, в то время как ClassAutoload работает

Я получаю php фатальную ошибку «Class not found» при работе над тестовым проектом (пытаюсь изучить ZF2).

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

Проблема проста. Если я не включаю свою карту классов, мои entites не загружаются автоматически, что «хорошо» (как это работает сейчас), но я бы очень хотел знать, где проблема и что не так …

мой файл 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 с помощью die («test»); чтобы убедиться, что он загружен и т. Д.)

[РЕДАКТИРОВАТЬ] Структура каталогов моего модуля Общее:

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

Спасибо!

0

Решение

В вашем сообщении об ошибке у вас есть Class 'Common\\Entity\\Domain' not found in... поэтому стандартный автозагрузчик ищет Domain.php файл не для domain.php так что просто измените заглавную букву первой буквы имени файла.

ClassMapAutoloader не имеет этой проблемы, потому что, например, Common\Entity\Property правильно отображается на /src/Common/Entity/property.php,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]