EntityRepository не найден

Возможный дубликат:
Ошибка доктрины: Класс 'Doctrine\ORM\EntityRepository' не найден

Я новичок в Doctrine, я следую примерам в документации. Я создал свои объекты, и все работает нормально, пока я не создал репозиторий. У меня есть объект с именем User и UserRepository.

Но когда я пытаюсь использовать пользовательский репозиторий, я получаю сообщение об ошибке: Неустранимая ошибка: класс «Doctrine\ORM\EntityRepository» не найден в C:\xampp\htdocs\excap\repositories\UserRepository.php в строке 10< /сильный>

use Doctrine\ORM\EntityRepository;

/**
 * Description of UserRepository
 *
 * @author Mario
 */
class UserRepository extends EntityRepository
{ 

Как я могу это решить?

<?php
//bootstrap_doctrine.php
$isDevMode = true;
use Doctrine\ORM\Tools\Setup;
require_once 'vendor/autoload.php';

$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__.'/entities'), $isDevMode);
$conn = array(
    'driver' => 'pdo_mysql',
    'user' => 'mydbuser',
    'password' => 'mydbpassword',
    'dbname' => 'mydbname'
);

$entityManager = \Doctrine\ORM\EntityManager::create($conn, $config);
?>

<?php
//boostrap.php
//Entities
require_once 'entities/User.php';
require_once 'entities/Gender.php';
require_once 'entities/AccessPoint.php';

//Repositories
require_once 'repositories/UserRepository.php';

if(!class_exists("Doctrine\Common\Version", FALSE))
{
    require_once 'bootstrap_doctrine.php';
}
?>

<?php
// autoload.php generated by Composer
if (!class_exists('Composer\\Autoload\\ClassLoader', false)) {
    require __DIR__ . '/composer' . '/ClassLoader.php';
}

return call_user_func(function() {
    $loader = new \Composer\Autoload\ClassLoader();
    $composerDir = __DIR__ . '/composer';

    $map = require $composerDir . '/autoload_namespaces.php';
    foreach ($map as $namespace => $path) {
        $loader->add($namespace, $path);
    }

    $classMap = require $composerDir . '/autoload_classmap.php';
    if ($classMap) {
        $loader->addClassMap($classMap);
    }

    $loader->register();

    return $loader;
});

?>

person PachinSV    schedule 05.07.2012    source источник


Ответы (2)


С ограниченной информацией, которую вы предоставили, я рискну предположить, что у вас неправильно настроен автозагрузчик; похоже, он не может автоматически включать класс EntityRepository.

Без какой-либо дополнительной информации я не могу вам ничем помочь, кроме как указать на Документация Doctrine по автозагрузчику

person Craige    schedule 05.07.2012
comment
Спасибо, Крейдж, какую еще информацию я должен опубликовать? содержимое автозагрузчика? - person PachinSV; 05.07.2012
comment
По крайней мере, нам нужно будет увидеть файлы автозагрузчика/бутстрапа. Также не помешает увидеть файл, создающий экземпляр UserRepository. - person Craige; 05.07.2012
comment
В списке в документации сказано: Composer заботится об автозагрузке. Вам просто нужно включить файл автозагрузки композитора в свой проект: ‹?php // Включить автозагрузку композитора require_once vendor/autoload.php; - person PachinSV; 05.07.2012
comment
Но используете ли вы Composer или загрузили Doctrine вручную? - person Craige; 05.07.2012
comment
Я скачал его с помощью Composer. Я отредактировал свой пост и добавил то, что вы сказали. большое спасибо - person PachinSV; 05.07.2012

Задача решена. Проблема была в файле bootstrap.php. Я загружал объекты перед загрузкой bootstrap_doctrine.php; это все.

person PachinSV    schedule 05.07.2012