|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 42 ![]() |
Bonjour,
Le problème semblait simple, mais finalement j'ai le plus grands mal à le résoudre. Mon dispatcher instancie un modèle (avec l'aide d'un autoload vers /models/classe.php). Les données de l'objet modèle sont dans un fichier JSON. J'aimerais que mon objet modèle "désérialise" le fichier json. ça c'est pas compliqué, mais je souhaite en plus que l'objet prenne en attribut, les valeurs du fichier json qu'il a désérialisé. Existe t il un moyen élégant de faire ça? Merci par avance |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 815 ![]() |
Citation:
... donne plus de détails, je ne vois pas où est le pb.
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
|
00
|
|
|
#3 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 695 ![]() |
Salut
Une fois délinéarisé, sous quel forme (ou type) sont les données ? Si c'est un tableau Php, ArrayOject me semble une solution, non ? Citation:
Si les attributs prennent comme nom les valeurs, quels valeurs auront les attributs ? array_flip() permet d'intervertir les clés/valeurs d'un tableau.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#4 | |||||
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 42 ![]() |
Merci à vous deux.
@Séb En m'inspirant de ta réponse, j'ai essayé Citation:
@RunCodePhp En théorie (si j'ai bien suivi) avec json_decode, un objet est créé. L'objet a les attribue des clés JSON et comme valeur les valeurs JSON. Pour reprendre l'exemple de la doc: Code :
Citation:
Citation:
|
|||||
|
|
00
|
|
|
#5 | |||||
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 815 ![]() |
Citation:
Code :
Code :
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|||||
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 42 ![]() |
Merci pour cette solution fonctionnelle.
Le problème est qu'étant donné le contexte de l'application, cette solution pourrait être lourde. Et je n'arrive pas à me faire à l'idée qu'en PHP, il n'existe pas l'équivalent d'array merge pour les objets. Je travaille sur plusieurs pistes: Cette solution trouvée ailleurs: Code :
$obj_merged = (object) array_merge((array) $obj1, (array) $obj2); Très proche de ta solution: Code :
foreach($objectA as $k => $v) $objectB->$k = $v; Enfin, une solution basée sur le patern composite. J'en ai trouvé quelques-unes sur le ouéb et ça permettrait de simplifier mon code: Le dispatcheur initialise le modèle et le contrôleur, le modèle crée un (ou des) objet(s) à partir du (ou des) JSON, le cas échéant le contrôleur ajoute les propriétés à l'objet modèle et enfin agrège l'objet modèle et l'objet issu du JSON. Que pensez-vous de cette solution? Cette interprétation du partage des rôles entre modèle et contrôleur est elle erronée? |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Ouch, es-tu sur de gagner en temps de traitement ? (ça semble être ta considération...)
|
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : février 2007 Messages : 42 ![]() |
Après tests, en fait non tu as raison.
Je pense que j'en resterai à la boucle. À moins qu'il est possible d'ajouter des méthodes à un objet déjà instancié. Vous connaissez un moyen? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com