|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
Precision pour la PR6:
- Le renseignement des bundles dans la ligne de commande ne fonctionne plus avec "Application\UserBundle". Ca fonctionne avec "UserBundle" tout court! Curieux. - il faut preciser le bundle pour la generation des entités depuis la PR6. Code :
php app/console doctrine:generate:entities "UserBundle" |
|
|
00
|
|
|
#22 | |||||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je relance le débat...
Avec la PR6, ça ne marche plus. J'ai créé un bundle. Créé un dossier entity. Rentré une classe a générer. Code :
Il reste a générer ... donc Code :
app/console doctrine:generate:entities "GeneralBundle" Sauf que la j'ai systématiquement un Citation:
Le fichier config a été modifié : Code :
Quelqu'un aurait une idée ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|||||
|
00
|
|
|
#23 | ||||
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
Je fais toujours par le fichier yml mais je viens de faire un essai avec les annotations qui fonctionne non sans embuche!
Avant de generer, il y a la possibilité de faire Cela me renvoi dans mon cas avec mon mapping au format yml: Citation:
Apres si je change la config comme tu le dis (et ce sont les bonnes infos http://docs.symfony-reloaded.org/gui...iguration.html ): Code :
Citation:
Et la solution magique est de supprimer le dossier "cache/prod". C'est le fichier "appProdProjectContainer.php" qui retient l ancien "driver" malgré le changement de config. ET PAF CA FONCTIONNE! J'avais meme essayé une suppression de cache par la console mais il garde le fichier qui cause problème. |
||||
|
|
00
|
|
|
#24 | |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
lol, si on peut dire.
J'ai fais les mêmes manipulation et ... nada. En fait je dois avoir un problème dans ma configuration, mais où ? Le me retourne Citation:
M'est avis qu'une fois que j'aurais identifié et corrigé ce défaut, ça devrait marcher
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
|
00
|
|
|
#25 | ||
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
Ouvre un peu ton fichier ""cache/prod/appProdProjectContainer.php".
Verifie la ligne 39 (ou dans ces eaux la) avec avec des yml, par exemple, j'ai un truc du genre: Code :
$d->addDriver(new \Doctrine\ORM\Mapping\Driver\YamlDriver(array(0 => 'C:\\apache2\\data\\Symfony2\\src\\Bundle\\UserBundle\\Resources\\config\\doctrine\\metadata\\orm')), 'Bundle\\UserBundle\\Entity'); sinon au niveau de l'entité, voici ce que j ai: Code :
|
||
|
|
00
|
|
|
#26 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je n'ai pas de ligne :mais essayant de travailler sans yaml, je ne pense pas que cela soit grave.
Par contre j'ai une ligne :qui me laisse perplexe. Manifestement il ne trouve pas mes namespaces pour mes entity. Ce qui explique qu'il ne puisse rien générer. Il me faut maintenant trouver comment, dans la configuration, lui dire où trouver ces informations. En tout les cas, merci pour ce fichier, il me semble une vraie mine d'or pour comprendre et debuger les problèmes de configuration de Sf2.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#27 | ||||
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
Ton erreur est la suivante (j'espere
). Dans ton Entité, tu as: Code :
Code :
|
||||
|
|
00
|
|
|
#28 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Tu as raisons. En plus je l'avais lu. Tous les paramètres en commentaire pour l'orm commence par "@orm:"
Sauf que, si cela enlève un future problème, cela ne résous pas celui de la configuration qui fait que symfony2 ne trouve pas où sont les entities. Dans ta configuration, tu as quoi pour la ligne : setEntityNamespaces() ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#29 | ||
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
Voici ce qui concerne la recherche des annotations:
Code :
Oublie pas de supprimer les dossiers "cache/prod" et "cache/dev" pour eviter de garder de vieux parametres qui corserait le bazard! |
||
|
|
00
|
|
|
#30 | ||||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je confirme que le nettoyage du cache n'est pas un luxe, plus automatique et semblerait devoir être fais "à la mano"..;
J'ai revu mon config.yml par un copié collé de la doc puis des adaptations Code :
Code :
J'ai un peu l'impression de piétiner sur place.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||||
|
00
|
|
|
#31 | ||
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
Cela me semble deja mieux.
Je plancherais bien pour ton config, peux tu ajouter ceci dans doctrine.orm? Code :
(au fait, si tu as le temps de te connecter au chat dvp, ce serait plus rapide pour echanger) |
||
|
|
00
|
|
|
#32 | ||
|
Membre actif
![]() Inscription : mai 2008 Messages : 187 ![]() |
Salut,
Personnellement j'ai eu du mal à comprendre qu'il fallait supprimer le cache aussi... Après moi ça fonctionne, dans mon config.yml j'ai ceci : Code :
ce qui m'a créé une classe User.php, l'entité et le fichier .dcm.yml J'ai ensuite supprimé la classe User.php et modifié le fichier yml, et ensuite fait un app/console doctrine:generate:entities "HelloBundle" Si on efface pas l'entité, les modifications ne sont pas effectuées, je pense que ça doit pouvoir se faire sans avoir à supprimer à chaque fois la classe... Ensuite un doctrine:mapping:info fonctionne également. Courage ! La doc est là mais...mouais
__________________
Github |
||
|
|
00
|
|
|
#33 | ||
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
Le probleme de Michel pour les annotations etait le suivant:
Les commentaires etaient mal ecrits, il avait : - l alias "orm" - il manquait une etoile ! Petit renseignement additionnel. Vous n'aimez pas avoir "orm" dans vos entités? Vous preferez "totoo" ? Pas de probleme!!! Ajoutez ceci dans votre config (+ supprimez le cache)! Code :
Dans le cache, la definition de votre "annotation namespace" est maintenant : Code :
$d->setDefaultAnnotationNamespace('Doctrine\\ORM\\Mapping\\', 'totoo'); En fait, on peut configurer tous les services comme cela... génial! |
||
|
|
00
|
|
|
#34 | ||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je complète la réponse de RapotOR avec qui on a passé l'après-midi sur le chat (pauvre bête).
En effet, la génération d'entités avec annotation est vicieuse. Non seulement il faut que la syntaxe dans le commentaire soit précise (en effet, elle a changé récemment et maintenant la commande @Entity doit commencer comme toutes les autres par @orm:Entity). Mais en plus il faut le schéma de la mise en place des commentaire est très (trop ?) précis. Code :
J'extrapole la syntaxe à tous les blocs d'annotation/commande pour chaque propriétés. Je confirme que l’extension pour les yaml DOIT être .dcm.yml c'est en dur dans le code. La nouvelle structure de génération dans le couple Symfony 2 et Doctrine 2 me laisse un peu déçus. En effet, l'entité devient un élément clés de l'application, c'est là que va se retrouver au final toute l'intelligence du modèle et nos méthode particulière d'accès aux données. Hors, si l'on régénère depuis du yaml ou du xml il faut supprimer les classe existantes. Comment sauvegarder notre code rajouté dans ces entités ? On ne retrouve plus la double hiérarchie lourde mais salvatrice de la version 1. D'où mes questions :
Edit : Vu le post de RapotOR posté pendant que j'écrivais celui-ci, je vais mettre un bémol sur l'obligation de l’extension .dcm.yml ce qui est en dur est la valeur par défaut...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||
|
00
|
|
|
#35 |
|
Membre éprouvé
![]() Benjamin ThuillierInscription : juillet 2010 Messages : 195 ![]() |
De ce que j'ai pu me renseigner, doctrine 2 s'inspire fortement d'hibernate. Et dans hibernate il faut créer chaque entity à la main ( avec le même système d'annotation ). Ici donc pas de génération automatique des entités. Et je pense qu'il va falloir avec doctrine 2 apprendre à ne plus utiliser la génération automatique des modèles( entities).
|
|
00
|
|
|
#36 | |||
|
Membre actif
![]() Inscription : mai 2008 Messages : 187 ![]() |
Il est possible d'ajouter des options présentes dans les commandes de Doctrine2, par exemple update et regenerate. Bien que la documentation de Doctrine précise que si on mets à jour notre document .dcm, la mise à jour n'effacera pas ce qui a déjà été créé, mais va seulement ajouter les modifications.
Si vous avez fait un champs musiq et que vous changez par musique, dans l'entité créée il y aura les deux champs...donc à supprimer manuellement. Citation:
Code :
Mais j'imagine que ça sera certainement implémentée dans la version finale de SF2... Les commandes de Doctrine2
__________________
Github |
|||
|
|
00
|
|
|
#37 |
|
Invité régulier
![]() Vincent Inscription : janvier 2011 Messages : 4 ![]() |
Bonjour,
J'ai été confronté comme vous au problème "... does not contain any mapped entities" la commande doctrine:generate:entities ne fonctionne pas chez moi, j'ai des probleme de noms. Par contre, je m'en suis sorti en partant du fichier dcm.xml créé par doctrine:generate:entity et en régénérant la classe. Je me suis noté ma démarche complète ici pour mémoire. Merci Spike pour le truc sur l'update et le regenerate... J'ai bien cherché un petit bout de temps pour trouver comment mettre à jour mon entitée !!! Une petite question en passant : Pour la création d'une nouvelle table... Vous créez d'abord la table dans la base de donnée puis vous demandez à Doctrine de l'importer ou alors vous faites d'abord vos entities dans le framework puis ensuite vous generez le schema dans votre base ? |
|
|
00
|
|
|
#38 |
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
J'aime beaucoup la modification de spike.
Voyez vous un moyen simple d'overloader proprement les commandes définies par défaut? Je ne veux pas vraiment modifier les fichiers originels du doctrinebundle, c'est pas propre à mon gout et dangereux vu que le code est encore pas entièrement stable. |
|
|
00
|
|
|
#39 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Il faudrait tester ce que donne un bundle tierce qui déclarerait les mêmes spacename mais après dans l'autoloader (ou avant).
A mon avis il devrait passer en priorité et permettre de sucrer un module d'un autre bundle. En espérant que le passage ne soit pas aléatoire ou sujet au contexte.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#40 |
|
Membre éprouvé
![]() Cédric L.Inscription : février 2009 Messages : 315 ![]() |
exact, il suffit de mettre un dossier "Command" avec des fonctions personnelles.
cela contourne le probleme: le seul ennui est que ca allonge la liste... dommage... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com