/** * Returns an instance of the requested external * media driver. * * @param string $service * @param string $mediaId * @return object */ public static function factory($driver, $mediaId) { $driver = 'Externalmedia_' . zula_camelise($driver); if (class_exists($driver)) { try { return new $driver($mediaId); } catch (ExternalMediaDriver_NoRead $e) { throw new ExternalMedia_DriverError($e->getMessage()); } } else { throw new ExternalMedia_NoDriver('External driver "' . $driver . '" does not exist'); } }
/** * Provides access to all available helpers * * @param string $helper * @return object */ protected function _helper($helper) { if (!isset(self::$helpers[$helper])) { $class = 'View_Helpers_' . zula_camelise($helper); if (!class_exists($class)) { throw new View_HelperNoExist('View unable to load helper "' . $helper . '" as it does not exist'); } self::$helpers[$helper] = new $class(); } return self::$helpers[$helper]; }