Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > ORM > Doctrine
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2011, 12h35   #1
Invité régulier
 
Inscription : janvier 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 16
Points : 6
Points : 6
Par défaut 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 :
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 :
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 :
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 :
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
canardman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 17h03   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
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.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 08h51   #3
Invité régulier
 
Inscription : janvier 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 16
Points : 6
Points : 6
Je ne n'utilise pas symfony.
Doctrine 1.2

Citation:
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
canardman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 09h44   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
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.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 10h24   #5
Invité régulier
 
Inscription : janvier 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 16
Points : 6
Points : 6
Oui je veux bien que tu effectue le déplacement, je me suis un peu perdu dans l'arborescence du forum..

Citation:
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
canardman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 13h21   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
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.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h03.


 
 
 
 
Partenaires

Hébergement Web