I receive php fatal error "Class not found" while working on a test project (trying to learn ZF2).
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
Problem is simple, If I dont include my classmap, my entites dosnt load automatically, which is "okay" (as in it works now), but I would really like to know where the problem is and what is wrong...
my classmap.php file looks like this:
<?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',
);
My error log looks like this:
[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
(I have testet my Modeule.php with die("test"); to make sure it is loaded etc)
[EDIT] Directory structure of my module Common:
$ tree Common
Common
├── classmap.php
├── config
│ └── module.config.php
├── Module.php
└── src
└── Common
├── Controller
└── Entity
├── domain.php
└── property.php
Thanks!
In your error message you have
Class 'Common\\Entity\\Domain' not found in...
so standard autoloader is looking forDomain.php
file not fordomain.php
so simply change to upper case first letter of filenames.ClassMapAutoloader don't have this issue because for example
Common\Entity\Property
is mapping correctly to/src/Common/Entity/property.php
.