AppFramework:

- get request from the server container
- implement registerMiddleWare()
- adding getAppName() to app container
remotes/origin/stable6
Thomas Müller 11 years ago
parent db39fede97
commit b2ef978d10
  1. 50
      lib/appframework/dependencyinjection/dicontainer.php
  2. 12
      lib/public/appframework/iappcontainer.php

@ -34,6 +34,8 @@ use OC\AppFramework\Utility\SimpleContainer;
use OC\AppFramework\Utility\TimeFactory;
use OCP\AppFramework\IApi;
use OCP\AppFramework\IAppContainer;
use OCP\AppFramework\IMiddleWare;
use OCP\IServerContainer;
class DIContainer extends SimpleContainer implements IAppContainer{
@ -57,31 +59,10 @@ class DIContainer extends SimpleContainer implements IAppContainer{
* Http
*/
$this['Request'] = $this->share(function($c) {
$params = array();
// we json decode the body only in case of content type json
if (isset($_SERVER['CONTENT_TYPE']) && stripos($_SERVER['CONTENT_TYPE'],'json') === true ) {
$params = json_decode(file_get_contents('php://input'), true);
$params = is_array($params) ? $params: array();
}
return new Request(
array(
'get' => $_GET,
'post' => $_POST,
'files' => $_FILES,
'server' => $_SERVER,
'env' => $_ENV,
'session' => $_SESSION,
'cookies' => $_COOKIE,
'method' => (isset($_SERVER) && isset($_SERVER['REQUEST_METHOD']))
? $_SERVER['REQUEST_METHOD']
: null,
'params' => $params,
'urlParams' => $c['urlParams']
)
);
/** @var $c SimpleContainer */
/** @var $server IServerContainer */
$server = $c->query('ServerContainer');
return $server->getRequest();
});
$this['Protocol'] = $this->share(function($c){
@ -138,4 +119,23 @@ class DIContainer extends SimpleContainer implements IAppContainer{
{
return $this->query('ServerContainer');
}
/**
* @param IMiddleWare $middleWare
* @return boolean
*/
function registerMiddleWare(IMiddleWare $middleWare) {
/** @var $dispatcher MiddlewareDispatcher */
$dispatcher = $this->query('MiddlewareDispatcher');
$dispatcher->registerMiddleware($middleWare);
}
/**
* used to return the appname of the set application
* @return string the name of your application
*/
function getAppName() {
return $this->query('AppName');
}
}

@ -33,6 +33,12 @@ use OCP\IContainer;
*/
interface IAppContainer extends IContainer{
/**
* used to return the appname of the set application
* @return string the name of your application
*/
function getAppName();
/**
* @return IApi
*/
@ -42,4 +48,10 @@ interface IAppContainer extends IContainer{
* @return \OCP\IServerContainer
*/
function getServer();
/**
* @param IMiddleWare $middleWare
* @return boolean
*/
function registerMiddleWare(IMiddleWare $middleWare);
}

Loading…
Cancel
Save