summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2014-11-03 16:58:30 +0100
committerThomas Müller <thomas.mueller@tmit.eu>2014-11-03 16:58:30 +0100
commit6d85a2995b0e42a5ee63578765913f878ccf800d (patch)
tree9f708f8c3df7b581671af81378dc5752a9a8dcc2
parentf8f38b06dfef0af2555124cf0d1ec55402aa8c8c (diff)
parent994768d99f0c0ea0e50f30774005a75e7533e105 (diff)
downloadnextcloud-server-6d85a2995b0e42a5ee63578765913f878ccf800d.tar.gz
nextcloud-server-6d85a2995b0e42a5ee63578765913f878ccf800d.zip
Merge pull request #11918 from owncloud/pimple-composer
Update Pimple to V3.0
m---------3rdparty0
-rw-r--r--lib/base.php3
-rw-r--r--lib/private/appframework/dependencyinjection/dicontainer.php20
-rw-r--r--lib/private/appframework/utility/simplecontainer.php9
4 files changed, 17 insertions, 15 deletions
diff --git a/3rdparty b/3rdparty
-Subproject c37dc06ce2906813dec3296d1a58c1628c206a3
+Subproject 17cdabdae0168bd678f859345b0b20a9ae7c964
diff --git a/lib/base.php b/lib/base.php
index d428d45d90a..7fa53c3a074 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -457,8 +457,7 @@ class OC {
// setup 3rdparty autoloader
$vendorAutoLoad = OC::$THIRDPARTYROOT . '/3rdparty/autoload.php';
if (file_exists($vendorAutoLoad)) {
- $loader = require_once $vendorAutoLoad;
- $loader->add('Pimple',OC::$THIRDPARTYROOT . '/3rdparty/Pimple');
+ require_once $vendorAutoLoad;
} else {
OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
OC_Template::printErrorPage('Composer autoloader not found, unable to continue.');
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);
}
}
}