|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Bonjour,
Je cherche à créer un objet persistant. J'utilise symfony 1.4 et doctrine 1.2 ce qui peut expliquer certaines méthodes "bizarres" que je commenterais. Je pense que le problème est lié à mon architecture objet et pas à symfony ou doctrine c'est pourquoi je poste ici. Mais n’ayant pas trouvé l'origine... Le problème est que les données ne sont pas persistantes. Pire, elle ne le sont même dans dans une même session. Résumé de la classe parent : Code :
Code :
Code :
Enfin le contrôleur Code :
La question est : pourquoi query_liste_base passe-t-il d'un objet lors de l'init à null un peu après ? A noter que la méthode construct de l'objet n'est exécutée qu'une fois ce qui exclu que l'objet serait ré-instancié. Quelqu'un a-t-il une idée de test et/ou d'explication ? D'avance merci
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||||||||
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
les classes sont bien serializable ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
MyUser oui, par héritage.
mrParcour c'est implémenté (je n'ai pas mis le code mais il y est) le contrôleur non, mais cela n'a pas d'intérêt. Dans tous les cas je n'essaye même pas de récupérer l'objet sérializé, j'en suis à la première lecture...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Faute de frappe dans la classe myUser Code :
$this->setAttrubute('personnel_pager');
|
|
00
|
|
|
#5 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Bien vu.
Mais une rapide vérification m'a confirmé ce que je craignais, c'est une faute de rédaction, je ne sais pas comment un copié collé peut transformer un i en u, mais je soupçonne fortement mes doigts d'avoirs trainés là où il n'auraient pas eu. Le code comporte le bon nom de fonction. Et l'erreur aurait été facilement identifiable. Je soupçonne plutôt une erreur dans la logique de l'objet mrParcour et/ou de son implémentation. Mais je n'ai toujours pas trouvé où.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Serait-ce possible d'avoir le code complet de mrParcour ? |
|
00
|
|
|
#7 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Salut.
J'aimerai bien savoir si Doctrine_Query implémente sérializable. Et jeter un oeil à mrParcour::__sleep et mrParcour::__wakeUp si possible.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#8 | ||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Si dessous.
Je travail actuellement dessus, il n'est donc pas stable. Les die() et autre echo sont du code lié au débug et n'entre pas dans la logique de l'objet. L'objectif est d'avoir une zone navigation sur une partie des enregistrements d'une table avec la possibilité de passer au suivant, précédant premier, dernier courant dans le lot sans afficher de numéro d'enregistrement sur la page. De récupérer le sql du filtre et du tris pour afficher une liste. De limiter les recherches à une vue partiel de la base pour un quidam qui n'aurait accès qu'aux fiches de son bureau, immeuble, magasin, entrepôts, service, équipe... Code php :
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||
|
00
|
|
|
#9 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Y-a-t'il un mécanisme de Singleton sous-jascent ? Cela pourrait alors venir du fait que la méthode myUser::getPersonnePager exécute un new qui remplacerait les attributs de l'instance existante... Ligne 207, pourquoi y-a-t'il , si le code suivant n'est pas nécéssaire alors pourquoi il est là ? Je pense pas sérieusement que mes hypothèses tiennent la route... Je vais continuer de chercher.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#10 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je ne crois pas trop à un problème doctrine mais c'est une piste que je vais approfondir.
le de la ligne 207 n'a aucun intérêt, si ce n'est de couper le traitement là et de me permettre de tester autre chose... Hier soir l'ordi serait passé un peu vite par la fenêtre sans ! Le code est "sale", plein de code de débug dedans, j'avais prévenu, désolé
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#11 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Pas de souci. Tu sais que les breakpoints ça marche aussi avec Eclipse et XDebug
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#12 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Avec netbans aussi.
Mais je n'ai pas mieux compris hier. Je vais tenter de me refaire le coup là.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#13 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Le problème du debug en PHP c'est qu'il n'est presque pas possible de consulter la valeur des variables. Et cela limite plutôt la portée du debug
Reste que je pense avoir trouvé (c'est cela qui est bien en objet, on n'est jamais sur de rien) ! Le problème est que, la majeur partie du temps, l'objet est récupéré par un unserialize. Hors certaines données ne sont pas sérialisée vu qu'elle sont "presque" des constantes, initiée dans la méthode configure de l'objet. J'ai donc rajouté un traitement de configure() dans la méthode unserialize et tout semble fonctionner (du moins j'ai pu avancer dans le traitement des autres bugs, plus identifiable). Il me reste un problème à la génération de la requête mais là, je pense que je vais trouver, dés que j'aurais le temps de chercher Merci à tous.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#14 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Pourtant tu ne déclare aucune constante ni attribut statique, c'est Doctrine qui t'en mets ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#15 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Il y a des attributs statics (FiltreObjectNom) et NameQueryListBase. Celui justement qui disparaissait...
Le problème de la consultation du contenu des variable en xdebug vient d'une instabilité de xdebug à ce niveau. Ceci entraine un risque plus élevé (beaucoup plus) de plantage du serveur apache. Ce n'est pas lié à l'EDI utilisé. C'est un problème connu et, hélas, récurent à xdebug apparemment.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() ![]() |
Bonjour Michel,
Pour le debug, je te conseille d'essayer l'EDI de NuSphere PhpEd. Leur module de debug est absolument génial. Enfin, après y avoir goûté je ne te cache pas que revenir sur xdebug me parait impossible. |
|
00
|
|
|
#17 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Ceci à l'air plus qu'inintéressant. Par contre, le prix est plus élevé aussi
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#18 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Le var_dump c'est moins cher
-- Edit, j'espère que tout le monde avait compris que je suis pas sérieux 5 minutes quand je dis ça. J'ai en horreur les fragments de code commentés pour des raisons de débug laissé dans un produit taggé.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#19 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Pas sur...
Si tu comptes le temps passé à le mettre en place, a le retirer, a ne pas l'avoir fait sur la bonne variable, a afficher réafficher la même page. Possible que l'autre soit moins cher. Et pouvoir modifier la valeur d'une variable en directe, j'aime.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
10
|
|
|
#20 |
|
Expert Confirmé
![]() ![]() |
+1 Michel :-)
Bon on s'éloigne de la problématique posée. De toute façon avec les éléments fournis je ne vois pas trop où ça pêche Michel. Désolé. Après moults tests d'EDI, j'ai à un moment fait cette comparaison (var_dump et vrai mode debug). Et finalement, j'ai opté pour la soluce PHPEd. Sur des projets conséquents, le debug est essentiel et le gain de temps appréciable. Sans parler du confort de pouvoir inspecter et même de changer toutes les valeurs des variables à l'exécution. Et puis après coup quand un problème survient, tu te pointes chez ton client et tu peux tout tracer devant lui ligne par ligne, variable par variable et là j'ai vu des développeurs PHP littéralement baver. Donc c'est un calcul à faire mais en fonction de ce qui est visé je pense que c'est une opération rentable, enfin dans mon cas cela a été vrai. |
|
00
|
Copyright © 2000-2012 - www.developpez.com