Author: bhofmann Date: Wed Aug 18 07:31:06 2010 New Revision: 986586 URL: http://svn.apache.org/viewvc?rev=986586&view=rev Log: PHP: Further dependency injection for MakeRequestHandler, MakeRequest, ContainerConfig
http://codereview.appspot.com/1974043/ Modified: shindig/trunk/php/config/container.php shindig/trunk/php/src/gadgets/GadgetContext.php shindig/trunk/php/src/gadgets/MakeRequestHandler.php shindig/trunk/php/src/gadgets/ProxyBase.php shindig/trunk/php/src/gadgets/servlet/MakeRequestServlet.php shindig/trunk/php/src/social/service/DataRequestHandler.php shindig/trunk/php/src/social/service/HttpHandler.php shindig/trunk/php/src/social/service/SystemHandler.php Modified: shindig/trunk/php/config/container.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/config/container.php?rev=986586&r1=986585&r2=986586&view=diff ============================================================================== --- shindig/trunk/php/config/container.php (original) +++ shindig/trunk/php/config/container.php Wed Aug 18 07:31:06 2010 @@ -153,7 +153,10 @@ $shindigConfig = array( 'gadget_spec_class' => 'GadgetSpec', 'substitution_class' => 'Substitutions', 'proxy_handler' => 'ProxyHandler', - + 'makerequest_handler' => 'MakeRequestHandler', + 'makerequest_class' => 'MakeRequest', + 'container_config_class' => 'ContainerConfig', + // Caching back-end's to use. Shindig ships with CacheStorageFile, CacheStorageApc and CacheStorageMemcache support // The data cache is primarily used for remote content (proxied files, gadget spec, etc) // and the feature_cache is used to cache the parsed features xml structure and javascript Modified: shindig/trunk/php/src/gadgets/GadgetContext.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/gadgets/GadgetContext.php?rev=986586&r1=986585&r2=986586&view=diff ============================================================================== --- shindig/trunk/php/src/gadgets/GadgetContext.php (original) +++ shindig/trunk/php/src/gadgets/GadgetContext.php Wed Aug 18 07:31:06 2010 @@ -133,7 +133,8 @@ class GadgetContext { } protected function instanceContainerConfig() { - return new ContainerConfig(Config::get('container_path')); + $containerConfigClass = Config::get('container_config_class'); + return new $containerConfigClass(Config::get('container_path')); } public function getContainer() { Modified: shindig/trunk/php/src/gadgets/MakeRequestHandler.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/gadgets/MakeRequestHandler.php?rev=986586&r1=986585&r2=986586&view=diff ============================================================================== --- shindig/trunk/php/src/gadgets/MakeRequestHandler.php (original) +++ shindig/trunk/php/src/gadgets/MakeRequestHandler.php Wed Aug 18 07:31:06 2010 @@ -35,7 +35,8 @@ class MakeRequestHandler extends ProxyBa */ public function __construct(GadgetContext $context) { $this->context = $context; - $this->makeRequest = new MakeRequest(); + $makeRequestClass = Config::get('makerequest_class'); + $this->makeRequest = new $makeRequestClass(); } /** Modified: shindig/trunk/php/src/gadgets/ProxyBase.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/gadgets/ProxyBase.php?rev=986586&r1=986585&r2=986586&view=diff ============================================================================== --- shindig/trunk/php/src/gadgets/ProxyBase.php (original) +++ shindig/trunk/php/src/gadgets/ProxyBase.php Wed Aug 18 07:31:06 2010 @@ -34,7 +34,8 @@ class ProxyBase { if (isset($makeRequest)) { $this->makeRequest = $makeRequest; } else { - $this->makeRequest = new MakeRequest(); + $makeRequestClass = Config::get('makerequest_class'); + $this->makeRequest = new $makeRequestClass(); } } Modified: shindig/trunk/php/src/gadgets/servlet/MakeRequestServlet.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/gadgets/servlet/MakeRequestServlet.php?rev=986586&r1=986585&r2=986586&view=diff ============================================================================== --- shindig/trunk/php/src/gadgets/servlet/MakeRequestServlet.php (original) +++ shindig/trunk/php/src/gadgets/servlet/MakeRequestServlet.php Wed Aug 18 07:31:06 2010 @@ -37,7 +37,8 @@ class MakeRequestServlet extends HttpSer $contextClass = Config::get('gadget_context_class'); $context = new $contextClass('GADGET'); $makeRequestParams = MakeRequestOptions::fromCurrentRequest(); - $makeRequestHandler = new MakeRequestHandler($context); + $makeRequestHandlerClass = Config::get('makerequest_handler'); + $makeRequestHandler = new $makeRequestHandlerClass($context); $makeRequestHandler->fetchJson($makeRequestParams); } catch (MakeRequestParameterException $e) { // Something was misconfigured in the request Modified: shindig/trunk/php/src/social/service/DataRequestHandler.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/social/service/DataRequestHandler.php?rev=986586&r1=986585&r2=986586&view=diff ============================================================================== --- shindig/trunk/php/src/social/service/DataRequestHandler.php (original) +++ shindig/trunk/php/src/social/service/DataRequestHandler.php Wed Aug 18 07:31:06 2010 @@ -95,7 +95,8 @@ abstract class DataRequestHandler { $contextClass = Config::get('gadget_context_class'); $context = new $contextClass('GADGET'); $container = $context->getContainer(); - $containerConfig = new ContainerConfig(Config::get('container_path')); + $containerConfigClass = Config::get('container_config_class'); + $containerConfig = new $containerConfigClass(Config::get('container_path')); $config = $containerConfig->getConfig($container, 'gadgets.features'); $version = $this->getOpenSocialVersion($config); $supportedFields = $config[$version]['supportedFields']; Modified: shindig/trunk/php/src/social/service/HttpHandler.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/social/service/HttpHandler.php?rev=986586&r1=986585&r2=986586&view=diff ============================================================================== --- shindig/trunk/php/src/social/service/HttpHandler.php (original) +++ shindig/trunk/php/src/social/service/HttpHandler.php Wed Aug 18 07:31:06 2010 @@ -48,7 +48,8 @@ class HttpHandler extends DataRequestHan // here from RequestItem->RpcRequestItem, but PHP doesn't seem to // complain. $options = MakeRequestOptions::fromRpcRequestItem($requestItem); - $makeRequest = new MakeRequest(); + $makeRequestClass = Config::get('makerequest_class'); + $makeRequest = new $makeRequestClass(); $contextClass = Config::get('gadget_context_class'); $context = new $contextClass('GADGET'); $response = $makeRequest->fetch($context, $options); Modified: shindig/trunk/php/src/social/service/SystemHandler.php URL: http://svn.apache.org/viewvc/shindig/trunk/php/src/social/service/SystemHandler.php?rev=986586&r1=986585&r2=986586&view=diff ============================================================================== --- shindig/trunk/php/src/social/service/SystemHandler.php (original) +++ shindig/trunk/php/src/social/service/SystemHandler.php Wed Aug 18 07:31:06 2010 @@ -56,8 +56,9 @@ class SystemHandler extends DataRequestH } public function handleListMethods(RequestItem $request) { - $containerConfig = new ContainerConfig(Config::get('container_path')); - $gadgetConfig = $containerConfig->getConfig('default', 'gadgets.features'); + $containerConfigClass = Config::get('container_config_class'); + $containerConfig = new $containerConfigClass(Config::get('container_path')); + $gadgetConfig = $containerConfig->getConfig('default', 'gadgets.features'); if (! isset($gadgetConfig['osapi.services']) || count($gadgetConfig['osapi.services']) == 1) { // this should really be set in config/container.js, but if not, we build a complete default set so at least most of it works out-of-the-box $gadgetConfig['osapi.services'] = array( @@ -79,6 +80,6 @@ class SystemHandler extends DataRequestH 'http.head', 'http.get', 'http.put', 'http.post', 'http.delete')); } - return $gadgetConfig['osapi.services']; + return $gadgetConfig['osapi.services']; } }
