* * * * You will also need to configure which callback class to call. This you do * with the ezcBaseInit::setCallback() method. The following examples sets the * callback classname for the configuration identifier * 'ConfigurationManagerConfig' to 'cfgConfigurationManager': * * * * * * The class 'cfgConfigurationManager' is required to implement the * ezcBaseConfigurationInitializer interface, which defines only one method: * configureObject(). An example on how to implement such a class could be: * * * init( 'ezcConfigurationIniReader', 'settings', array( 'useComments' => true ) ); * } * } * ?> * * * Ofcourse the implementation of this callback class is up to the application * developer that uses the component (in this example the Configuration * component's class ezcConfigurationManager). * * @package Base * @version 1.2beta1 */ class ezcBaseInit { /** * Contains the callback where the identifier is the key of the array, and the classname to callback to the value. * * @var array(string=>string) */ static private $callbackMap = array(); /** * Adds the classname $callbackClassname as callback for the identifier $identifier. * * @param string $identifier * @param string $callbackClassname */ public static function setCallback( $identifier, $callbackClassname ) { if ( array_key_exists( $identifier, self::$callbackMap ) ) { throw new ezcBaseInitCallbackConfiguredException( $identifier, self::$callbackMap[$identifier] ); } else { self::$callbackMap[$identifier] = $callbackClassname; } } /** * Uses the configured callback belonging to $identifier to configure the $object. * * @param string $identifier * @param object $object */ public static function fetchConfig( $identifier, $object ) { if ( isset( self::$callbackMap[$identifier] ) ) { $callbackClassname = self::$callbackMap[$identifier]; call_user_func( array( $callbackClassname, 'configureObject' ), $object ); } } } ?>