|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : août 2007 Messages : 4 ![]() |
Bonjour,
l'utilisation d'une méthode définie via le class_loader ne fonctionne pas. La classe est introuvable. J'ai fait une bidouille pour corriger: Dans PMO_MyObject la methode internalfactory appelle getClassname(). Code :
Code :
A noter que la doc indique toujours d'utiliser "extends MyObject" au lieu de "PMO_MyObject"
|
||||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : janvier 2003 Messages : 181 ![]() |
Et oui
ça fait parti des modifications de la version 0.12 !Citation:
pourquoi ? la v 0.12 crée à la première execution une class PMO_core/cache/PMO_MyTable_lenomdetable.php héritant de PMO_MyTable (si tu veux savoir comment c'est la méthode PMO_MyTable->tocache()). C'est cette classe qui est ensuite instanciée à la place de PMO_MyTable Si tu l'édites, tu verras que l'attribut Citation:
L'avantage est que cette classe décrit la structure de ta table et définit en dur le nom de la classe PMO_MyObject que tu souhaites utiliser. Ca évite les problèmes de nom de classes déjà utilisés. En effet, la documentation n'est pas aussi à jour que le soft :/ je fais mon max pourtant
__________________
PhpMyObject teck leader http://pmo.developpez.com La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure. |
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : janvier 2003 Messages : 181 ![]() |
Je viens de mettre à jour la doc pour PMO_MyObject
__________________
PhpMyObject teck leader http://pmo.developpez.com La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : août 2007 Messages : 4 ![]() |
OK
j'ai testé. Cela fonctionne impec. Cette manière de faire permet d'avoir un nom de classe différent du nom de la table. Mais ce n'est quand même pas très naturel. C'est étonnant de devoir modifier un fichier de cache. Par définition un cache est généré pour permettre une accélération ultérieurement. Un cache a vocation à être effacé. Ici cela ressemble plus à un fichier de configuration généré automatiquement. Le fichier est modifié pour coller au mieux à son besoin. Une fois modifié sur sa plateforme de développement, le fichier doit être copié sur celle de production et non généré en prod. Perso, c'est pas un problème. Je n'ai pas trop de tables. Mais j'imagine mal avec plusieurs dev en parallèle, plusieurs bases.. Merci pour ta réactivité. |
|
|
00
|
|
|
#5 | |
|
Membre habitué
![]() Inscription : janvier 2003 Messages : 181 ![]() |
Citation:
Car ce sont bien des classes, et des classes qui peuvent passer d'un environnement de dev à prod sans avoir à être regénéré
__________________
PhpMyObject teck leader http://pmo.developpez.com La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com