| // | Demian Turner | // +---------------------------------------------------------------------------+ /** * PHP 4/5 compatible class for aggregating objects. * * @package SGL * @author Demian Turner */ class SGL_Delegator { var $aDelegates = array(); function __call($methodName, $parameters) { foreach ($this->aDelegates as $delegate) { if (is_callable(array($delegate, $methodName))) { return call_user_func_array( array($delegate, $methodName), $parameters); } } } function add($delegate) { if (!SGL::isPhp5()) { aggregate_methods($this, get_class($delegate)); SGL::objectCopy($delegate, $this); // aggregate_properties(); ignore private vars } $this->aDelegates[] = $delegate; } } ?>