PHP Manual
Prev |  | Next

# aggregation_info

(PHP 4 >= 4.2.0)

aggregation_info -- returns an associative array of the methods and properties from each class that has been aggregated to the object.

## Description

array aggregation_info ( object object)

Will return the aggretaion information for a particular object as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

For example the code below

Example 1. Using aggregation_info()
    <?php

    class Slicer {
        var $vegetable;

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

        function slice_it($num_cuts) {
            echo "Doing some simple slicing\n";
            for ($i=0; $i < $num_cuts; $i++) {
                // do some slicing
            }
        }
    }

    class Dicer {
        var $vegetable;
        var $rotation_angle = 90;   // degrees

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

        function dice_it($num_cuts) {
            echo "Cutting in one direction\n";
            for ($i=0; $i < $num_cuts; $i++) {
                // do some cutting
            }
            $this->rotate($this->rotation_angle);
            echo "Cutting in a second direction\n";
            for ($i=0; $i < $num_cuts; $i++) {
                // do some more cutting
            }
        }

        function rotate($deg) {
            echo "Now rotating {$this->vegetable} {$deg} degrees\n";
        }

        function _secret_super_dicing($num_cuts) {
            // so secret we cannot show you ;-)
        }
    }

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

Will produce the output

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

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

            )

    )

As you can see, all properties and methods of the Dicer class have been aggregated into our new object, with the exception of the class constructor and the method `_secret_super_dicing`

See also aggregate(), aggregate_methods(), aggregate_methods_by_list(), aggregate_methods_by_regexp(), aggregate_properties(), aggregate_properties_by_list(), aggregate_properties_by_regexp(), deaggregate()

Prev | Home | Next
aggregate | Up | deaggregate