2012-07-05 4 views
0

Je suis nouveau dans Doctrine, je suis les exemples dans la documentation. Lorsque je crée une classe Repository (par exemple UserRepository.php) et j'essaie d'étendre la classe EntityRepository, j'obtiens ce message d'erreur: Erreur fatale: Classe 'Doctrine \ ORM \ EntityRepository' introuvable dans C: \ xampp \ htdocs \ excap \ repositories \ UserRepository.php en ligne 10Erreur de doctrine: Classe 'Doctrine ORM EntityRepository' introuvable

Ceci est ma classe Repository:

use Doctrine\ORM\EntityRepository; 

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

Qu'est-ce que je fais mal? (En passant, j'ai installé en utilisant Doctrine2 Composer)

<?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; 
}); 
?> 
+0

Êtes-vous en train d'inclure la classe de doctrine dans votre page de cours? – Blaster

+0

J'utilise le composeur autoload.php (supposément c'est le chargement de toutes les classes nécessaires); Tout le reste fonctionne très bien, je peux utiliser toutes mes entités, je peux les persister sans problème. – PachinSV

Répondre

2

Problème résolu. Le problème était dans le fichier bootstrap.php. Je chargeais les entités avant de charger le fichier bootstrap_doctrine.php; c'est tout.

0

Avez-vous mis dans votre espace de noms de classe référentiel?

+0

Problème résolu. Le problème était dans le fichier bootstrap.php. Je chargeais les entités avant de charger le fichier bootstrap_doctrine.php; c'est tout. – PachinSV

Questions connexes