Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2007, 13h12   #1
ovh
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 725
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 725
Points : 6 310
Points : 6 310
Par défaut Récursion impossible avec un rowset ?

Bonjour à tous

Je fais une migration d'un ancien site en ZF (du moins certaines parties), et là je récupère des données dans un Zend_Db_Table_Rowset de manière classique, ensuite je dois faire un traitement récursif sur ces données.

La fonction est la même que sur l'ancien site (donc elle marche), sauf qu'au lieu d'avoir mes données sous forme de tableau bi-dimensionnels (row/col), je les ai sous forme de Zend_Db_Table_Rowset. Hé bien figurez-vous qu'après avoir changé l'accès aux colonnes dans le code ($elem["colonne"] $elem->colonne) ça ne marche pas (il s'arrête au bout de 2 ou 3 niveaux de récursion) !!
Par contre, si je convertis mon rowset en tableau ($rowset->toArray()), là ça marche nickel !!!

Est-ce normal et y aurait-il une solution ? Ce ne serait pas gênant en soi si ce n'était que ça, mais malheureusement mes rows ont une classe personnalisée car j'ai besoin de certaines fonctions pour l'affichage...

Bref comment faire ?

__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.
Je n'ai rien à voir avec la société www.ovh.com !
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 18h13   #2
ovh
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 725
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 725
Points : 6 310
Points : 6 310
Je rêve
http://framework.zend.com/wiki/displ...an+Hope-Bailie

Pourquoi ai-je la désagréable impression que tout ce que je cherche dans ZF n'a pas encore été implémenté ?
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.
Je n'ai rien à voir avec la société www.ovh.com !
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 18h58   #3
ovh
Rédacteur
 
Avatar de ovh
 
Homme
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 3 725
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2002
Messages : 3 725
Points : 6 310
Points : 6 310
Bon j'ai réussi à contourner le problème, ouf

J'explique, dans ma fonction itérative je fais ça :
Code PHP :
1
2
3
4
5
6
7
8
$liste = $rowset->toArray();
		for ($i=0; $i < sizeof($liste); $i++) {
			$data  = array(
		       'table'    => $rowset->getTable(),
		       'data'     => $liste[$i],
		       'stored'   => true
		    );
		    $item = new CategorieRow($data);
Donc je commence par convertir le rowset en tableau, puis à boucler sur le tableau, mais ensuite je reconstruis mon élément Zend_Db_Table_Row_Abstract en me basant sur le contenu de l'élément courant du tableau, et en le liant à l'objet Zend_Db_Table renvoyé par la fonction getTable du rowset initial

C'est tordu mais ça marche Et je n'ai pas d'autre solution puisqu'un simple foreach ($rowset as $item) ne récurse pas

Voilà donc un workaround qui permet de récurser sans problème en continuant à avoir accès à ses objets !
__________________
Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.
Je n'ai rien à voir avec la société www.ovh.com !
ovh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h01.


 
 
 
 
Partenaires

Hébergement Web