Bonjour,

j'ai créé une une méthode qui me retourne toutes les propriétées d'un objet en utilisant l'introspection.

Quand la donnée en question n'est pas un objet tout fonctionne correctement, par contre, le hic est sur les tableaux contenant eux même des objets, la même méthode n'est purement et simplement pas excécutée. Pas de message d'erreur et une partie du code n'est tout simplement pas excécutée.

Donc, la question est : comment récupérer l'intégralité des attributs, privés ou non, d'un objet, y compris les tableaux qui contiennent eux même des objets d'un type déterminé ?

Bon week end.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
                        $proprieteesKeyVal = [];
 
			$reflectorClass = new \ReflectionClass( $this );
 
			$properties = $reflectorClass->getProprietees();
 
			/** @var \ReflectionProperty $property reflection property */
			foreach ( $properties as $properte )
			{
				$property->setAccessible( true );
 
				$proprieteesKeyVal[ $propriete->getName() ] = $propriete->getValue( $this );
			}
 
			// // recherche des propiétés contenant des tableaux d'objets
			foreach ( $proprieteesKeyVal as $arrayKeyValPair )
			{
				if ( gettype( $arrayKeyValPair ) == "array" )
				{
					/** @var Entity $entityObj */
					foreach ( $arrayKeyValPair as $entiteObj )
					{
						$cls = get_class( $entiteObj );
						if ( preg_match("/Entity/", $cls ) )
						{
							$test = $entiteObj->getProprietees();
						}
					}
				}
			}
 
			return $proprieteesKeyVal;