From 994768d99f0c0ea0e50f30774005a75e7533e105 Mon Sep 17 00:00:00 2001 From: Thomas Müller Date: Mon, 3 Nov 2014 13:10:03 +0100 Subject: Update Pimple to V3.0 --- .../appframework/dependencyinjection/dicontainer.php | 20 ++++++++++---------- lib/private/appframework/utility/simplecontainer.php | 9 ++++++--- 2 files changed, 16 insertions(+), 13 deletions(-) (limited to 'lib/private') diff --git a/lib/private/appframework/dependencyinjection/dicontainer.php b/lib/private/appframework/dependencyinjection/dicontainer.php index f7fee347215..98525ed3202 100644 --- a/lib/private/appframework/dependencyinjection/dicontainer.php +++ b/lib/private/appframework/dependencyinjection/dicontainer.php @@ -59,14 +59,14 @@ class DIContainer extends SimpleContainer implements IAppContainer{ $this->registerParameter('ServerContainer', \OC::$server); - $this['API'] = $this->share(function($c){ + $this->registerService('API', function($c){ return new API($c['AppName']); }); /** * Http */ - $this['Request'] = $this->share(function($c) { + $this->registerService('Request', function($c) { /** @var $c SimpleContainer */ /** @var $server SimpleContainer */ $server = $c->query('ServerContainer'); @@ -75,7 +75,7 @@ class DIContainer extends SimpleContainer implements IAppContainer{ return $server->getRequest(); }); - $this['Protocol'] = $this->share(function($c){ + $this->registerService('Protocol', function($c){ if(isset($_SERVER['SERVER_PROTOCOL'])) { return new Http($_SERVER, $_SERVER['SERVER_PROTOCOL']); } else { @@ -83,7 +83,7 @@ class DIContainer extends SimpleContainer implements IAppContainer{ } }); - $this['Dispatcher'] = $this->share(function($c) { + $this->registerService('Dispatcher', function($c) { return new Dispatcher( $c['Protocol'], $c['MiddlewareDispatcher'], @@ -97,7 +97,7 @@ class DIContainer extends SimpleContainer implements IAppContainer{ * Middleware */ $app = $this; - $this['SecurityMiddleware'] = $this->share(function($c) use ($app){ + $this->registerService('SecurityMiddleware', function($c) use ($app){ return new SecurityMiddleware( $c['Request'], $c['ControllerMethodReflector'], @@ -110,14 +110,14 @@ class DIContainer extends SimpleContainer implements IAppContainer{ ); }); - $this['CORSMiddleware'] = $this->share(function($c) { + $this->registerService('CORSMiddleware', function($c) { return new CORSMiddleware( $c['Request'], $c['ControllerMethodReflector'] ); }); - $this['SessionMiddleware'] = $this->share(function($c) use ($app) { + $this->registerService('SessionMiddleware', function($c) use ($app) { return new SessionMiddleware( $c['Request'], $c['ControllerMethodReflector'], @@ -126,7 +126,7 @@ class DIContainer extends SimpleContainer implements IAppContainer{ }); $middleWares = &$this->middleWares; - $this['MiddlewareDispatcher'] = $this->share(function($c) use (&$middleWares) { + $this->registerService('MiddlewareDispatcher', function($c) use (&$middleWares) { $dispatcher = new MiddlewareDispatcher(); $dispatcher->registerMiddleware($c['SecurityMiddleware']); $dispatcher->registerMiddleware($c['CORSMiddleware']); @@ -143,11 +143,11 @@ class DIContainer extends SimpleContainer implements IAppContainer{ /** * Utilities */ - $this['TimeFactory'] = $this->share(function($c){ + $this->registerService('TimeFactory', function($c){ return new TimeFactory(); }); - $this['ControllerMethodReflector'] = $this->share(function($c) { + $this->registerService('ControllerMethodReflector', function($c) { return new ControllerMethodReflector(); }); diff --git a/lib/private/appframework/utility/simplecontainer.php b/lib/private/appframework/utility/simplecontainer.php index a2d90138dfa..c6effed5b4b 100644 --- a/lib/private/appframework/utility/simplecontainer.php +++ b/lib/private/appframework/utility/simplecontainer.php @@ -7,7 +7,7 @@ namespace OC\AppFramework\Utility; * * SimpleContainer is a simple implementation of IContainer on basis of \Pimple */ -class SimpleContainer extends \Pimple implements \OCP\IContainer { +class SimpleContainer extends \Pimple\Container implements \OCP\IContainer { /** * @param string $name name of the service to query for @@ -35,10 +35,13 @@ class SimpleContainer extends \Pimple implements \OCP\IContainer { * @param bool $shared */ function registerService($name, \Closure $closure, $shared = true) { + if (!empty($this[$name])) { + unset($this[$name]); + } if ($shared) { - $this[$name] = \Pimple::share($closure); - } else { $this[$name] = $closure; + } else { + $this[$name] = parent::factory($closure); } } } -- cgit v1.2.3