Discussion:
acceder a une class __PHP_Incomplete_Class
(trop ancien pour répondre)
Etienne SOBOLE
2007-04-19 15:25:50 UTC
Permalink
salut.

lorsqu'on unserialize une class sans l'avoir défini on se retrouve avec un
objet de type
__PHP_Incomplete_Class

j'aimerai caster cette "objet' en SdtClass pour pouvoir y accéder mais je
n'y arrive point !!!

quelqu'un aurai une idée...
merci
Etienne
Francois Girault
2007-04-19 18:40:05 UTC
Permalink
Post by Etienne SOBOLE
lorsqu'on unserialize une class sans l'avoir défini on se retrouve avec un
objet de type
__PHP_Incomplete_Class
j'aimerai caster cette "objet' en SdtClass pour pouvoir y accéder mais je
n'y arrive point !!!
quelqu'un aurai une idée...
Je crois que c'est un vraiment comportement contre-nature qui peut
mettre en valeur un défaut de conception.

Il vaut mieux réfléchir à "pourquoi je n'ai pas la définition de cette
classe ?".

Si c'est pour uniquement récupérer des données, (et non les traitements
associés, aka poo ;) ), il vaut mieux sérialiser un tableau associatif.

mes 2 cents ...
--
FG
Gromitt
2007-04-19 18:40:05 UTC
Permalink
Post by Etienne SOBOLE
salut.
lorsqu'on unserialize une class sans l'avoir défini on se retrouve avec un
objet de type
__PHP_Incomplete_Class
j'aimerai caster cette "objet' en SdtClass pour pouvoir y accéder mais je
n'y arrive point !!!
Bonjour,

J'imagine que ceci se produit lorsque tu manipules des sessions, si
tel est le cas :
il te manque la définition (le code) de ta classe sérialisée quand tu
restores ta session.

Solution : inclus tes classes requises avant de démarrer ta session
(je pense qu'avec PHP5, __autoload() peut t'éviter ce désagrément).
Sinon, avec les méthodes magiques __sleep() et __wakeup() tu peux
automatiser la sérialisation de tes objets lorsque nécessaire.

--
Gromitt
Etienne SOBOLE
2007-04-20 12:14:45 UTC
Permalink
En fait il est clair que si j'inclu la classe il n'y a pas de problème.
ce que je cherche a faire c'est justement accèder au élements de mon objet
(ou de ma structure puisque ce n'est que cela)
sans inclure la class.

pourquoi je veux faire ca ?
ben tout simplement parce que je récupère des données serialisée provenant
dune classe donc je n'ai pas la definition.
alors je précise que si je fait juste un

class maclasse
{
}

ca fonctionne, mais les objets sérialisés que je récupère proviennent de
diverse classe.
enfin bref. tout ce que je veux moi c'est juste accéder a ces données.

un foreach($obj AS $key => $value) fonctionne et me parcourt tout l'objet
alors pourquoi un simple $obj->atrribut ou meme $obj['attribut'] ne
fonctionne pas !!!

Etienne

Continuer la lecture sur narkive:
Loading...