aggregation_info

(PHP 4 >= 4.2.0)

aggregation_info --  Retourne un tableau associatif décrivant les classes aggrégées

Description

array aggregation_info ( object object)

aggregation_info() retourne les informations d'aggrégation pour l'objet object, sous la forme d'un tableau associatif. Les clés de ce tableau sont les noms des classes aggrégées.

Par exemple, le code ci-dessous

Exemple 1. Exemple avec aggregation_info()

<?php

class Slicer {
    var $vegetable;

    function Slicer($vegetable) {
        $this->vegetable = $vegetable;
    }

    function slice_it($num_cuts) {
        echo "Tranchage\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // un peu de tranchage some slicing
        }
    }
}

class Dicer {
    var $vegetable;
    var $rotation_angle = 90;   // degr&eacute;s

    function Dicer($vegetable) {
        $this->vegetable = $vegetable;
    }

    function dice_it($num_cuts) {
        echo "Coupe suivant une direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // tranchage
        }
        $this->rotate($this->rotation_angle);
        echo "Coupe suivant une autre direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // tranchage encoer
        }
    }

    function rotate($deg) {
        echo "Rotation de {$this->vegetable} {$deg} degr&eacute;s\n";
    }

    function _secret_super_dicing($num_cuts) {
        // secret industriel, a ne pas montrer.
    }
}

$obj = new Slicer('onion');
aggregate($obj, 'Dicer');
print_r(aggregate_info($obj));
?>

va produire le résultat suivant

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)

Comme vous pouvez le voir, toutes les méthodes et propriétés de Dicer ont été aggrégées dans notre nouvel objet, a l'excéption de la classe constructuer, et de la méthode _secret_super_dicing

Voir aussi aggregate(), aggregate_methods(), aggregate_methods_by_list(), aggregate_methods_by_regexp(), aggregate_properties(), aggregate_properties_by_list(), aggregate_properties_by_regexp() et deaggregate()