IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Doctrine] erreur de path avec Doctrine_Core::generateModelsFromYaml


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut [Doctrine] erreur de path avec Doctrine_Core::generateModelsFromYaml
    Bonjour,

    Je ne parviens pas à indiquer le bon path à la méthode Doctrine_Core::generateModelsFromYaml

    Arborescence du projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      /config
         -global.php
        /lib  
         /model  
          /config  
           -schema.yml  
         /vendor  
          /doctrine
           ...  
        /web  
         -index.php  
        -build.php
    /config/global.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     <?php
        	////////////////////////////////////////////////////////
        	///////////////////// paths ////////////////////////////
        	////////////////////////////////////////////////////////
        	define('LIB_DIR',  dirname(__FILE__).'/../lib/');
        	define('CFG_DIR',  dirname(__FILE__).'/');
        	define('WEB_DIR',  dirname(__FILE__).'/../web/');
     
        	////////////////////////////////////////////////////////
        	//////////////////// doctrine conf /////////////////////
        	////////////////////////////////////////////////////////
        	define('CFG_DB_DSN', 'mysql://root@localhost/parcvehicule');
        	require_once(LIB_DIR.'vendor/doctrine/Doctrine.php');
        	spl_autoload_register(array('Doctrine_Core', 'autoload'));
        	spl_autoload_register(array('Doctrine_Core', 'modelsAutoload'));
     
        	$manager	= Doctrine_Manager::getInstance();
        	$conn		= Doctrine_Manager::connection(CFG_DB_DSN, 'doctrine');
     
        	$manager->setAttribute(Doctrine_Core::ATTR_VALIDATE, Doctrine_Core::VALIDATE_ALL);
        	$manager->setAttribute(Doctrine_Core::ATTR_AUTO_ACCESSOR_OVERRIDE, true);
        	$manager->setAttribute(Doctrine_Core::ATTR_AUTOLOAD_TABLE_CLASSES, true);
        	$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING, Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
     
        	Doctrine_Core::loadModels(LIB_DIR.'model/');
        ?>
    /build.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     <?php
        	require_once('config/global.php');
     
        	echo $_SERVER["PHP_SELF"];
     
        	// Si elle existe, supprimez la base existante.
        	// Attention, cela vide totalement la base de données !
        	Doctrine_Core::dropDatabases();
     
        	// Création de la base (uniquement si elle n'EXISTE PAS)
        	Doctrine_Core::createDatabases();
     
        	// Création des fichiers de modèle à partir du schema.yml
        	// Si vous n'utilisez pas le Yaml, n'exécutez pas cette ligne !
        	Doctrine_Core::generateModelsFromYaml('/lib/model/config/schema.yml', '/lib/model/',
        											array('generateTableClasses' => true));
     
        	// Création des tables
        	Doctrine_Core::createTablesFromModels('/lib/model');
        ?>
    Et la sortie de build.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     /parcVehicule/build.php
        Fatal error: Uncaught exception 'Doctrine_Import_Exception' with message
        'No yml schema found in /lib/model/config/schema.yml'
        in C:\Program Files (x86)\wamp\www\parcVehicule\lib\vendor\doctrine\Doctrine\Import\Schema.php:277
        Stack trace: #0 C:\Program Files (x86)\wamp\www\parcVehicule\lib\vendor\doctrine\Doctrine\Core.php(883):
        Doctrine_Import_Schema->importSchema('/lib/model/conf...', 'yml', '/lib/model/')
        #1 C:\Program Files (x86)\wamp\www\parcVehicule\build.php(16):
        Doctrine_Core::generateModelsFromYaml('/lib/model/conf...', '/lib/model/', Array)
        #2 {main} thrown in C:\Program Files (x86)\wamp\www\parcVehicule\lib\vendor\doctrine\Doctrine\Import\Schema.php on line 277

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Quel version de symfony ?
    Quel version de doctrine ?

    Si tu es sur un nouveau pojet et sous symfony 1.4.x tu as tout intérêt à définir ton shema.yml et à en faire une base plutôt que le contraire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut
    Je ne n'utilise pas symfony.
    Doctrine 1.2

    Si tu es sur un nouveau pojet et sous symfony 1.4.x tu as tout intérêt à définir ton shema.yml et à en faire une base plutôt que le contraire.
    Oui c'est un nouveau projet, mais n'est ce pas ce que je fais ? oO

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'ai l'impression que tu as défini la base avec un outil genre phpMyAdmin et que tu cherches à en récupérer la structure dans shema.yml. Mais peut-être me trompes-je ?

    Aie, doctrine sans symfony... Tu es dans le forum de doctrine avec symfony Mais nous ne serons pas sectaire. Pour le schéma, pas de problème, je peux aider largement. Par contre, pour la configuration, je n'ai jamais installé doctrine hors de symfony, je vais être lège sur l'aide. Si tu le souhaites, je peux déplacer le message sur la salle pure doctrine. Ce qui ne changera rien à mon aide sur le schéma.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Par défaut
    Oui je veux bien que tu effectue le déplacement, je me suis un peu perdu dans l'arborescence du forum..

    tu as défini la base avec un outil genre phpMyAdmin et que tu cherches à en récupérer la structure dans shema.yml
    J'ai utilisé MySql WorkBench pour créer ma base, puis j'ai fais un reverse engeenering pour obtenir le model, et enfin j'ai utilisé le plugin "mysql-workbench-doctrine-plugin" pour générer le schema.yml.

    Mon objectif est de pouvoir réutiliser schema.yml pour generer mes modèles php et des "fixtures" pour supprimer, creer, hydrater la db au besoin.

    Oui je me rend bien bien compte que ça devient une autre affaire sans symfony

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    En fait la définition du modèle dans Doctrine ou Symfony est très proche.

    Par contre tu utilises une approche un peu compliquée.

    Il faut bien comprendre que les shema.yml est plus qu'une simple description des tables, c'est aussi la descirption des objets doctrine, je dirais même, c'est avant tout cette description.

    Si je puis me permettre un conseil, part du shema.yml plutôt que de faire l'inverse. D'autant que ton application n'est pas réellement commencée, tu ne peux pas perdre grand chose.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/07/2018, 05h17
  2. Erreur ORA-12514 avec database link
    Par gafreu dans le forum Administration
    Réponses: 20
    Dernier message: 09/09/2004, 11h53
  3. Erreur sur IIS avec des cripts ASP
    Par Alin dans le forum ASP
    Réponses: 7
    Dernier message: 22/06/2004, 14h15
  4. erreur tcp/ip avec jdbc
    Par champion dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/04/2004, 14h32
  5. Erreur de sgmentation avec malloc
    Par simonm dans le forum C
    Réponses: 5
    Dernier message: 27/02/2003, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo