Я получаю 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
Спасибо!
В вашем сообщении об ошибке у вас есть Class 'Common\\Entity\\Domain' not found in...
поэтому стандартный автозагрузчик ищет Domain.php
файл не для domain.php
так что просто измените заглавную букву первой буквы имени файла.
ClassMapAutoloader не имеет этой проблемы, потому что, например, Common\Entity\Property
правильно отображается на /src/Common/Entity/property.php
,
Других решений пока нет …