|
|
|
|
@ -30,8 +30,10 @@
|
|
|
|
|
|
|
|
|
|
namespace OC\Route;
|
|
|
|
|
|
|
|
|
|
use OCP\ILogger;
|
|
|
|
|
use OCP\Route\IRouter;
|
|
|
|
|
use OCP\AppFramework\App;
|
|
|
|
|
use Symfony\Component\Routing\Exception\RouteNotFoundException;
|
|
|
|
|
use Symfony\Component\Routing\Matcher\UrlMatcher;
|
|
|
|
|
use Symfony\Component\Routing\Generator\UrlGenerator;
|
|
|
|
|
use Symfony\Component\Routing\RequestContext;
|
|
|
|
|
@ -78,7 +80,13 @@ class Router implements IRouter {
|
|
|
|
|
|
|
|
|
|
protected $loadedApps = array();
|
|
|
|
|
|
|
|
|
|
public function __construct() {
|
|
|
|
|
/**
|
|
|
|
|
* @var ILogger
|
|
|
|
|
*/
|
|
|
|
|
protected $logger;
|
|
|
|
|
|
|
|
|
|
public function __construct(ILogger $logger) {
|
|
|
|
|
$this->logger = $logger;
|
|
|
|
|
$baseUrl = \OC_Helper::linkTo('', 'index.php');
|
|
|
|
|
if (!\OC::$CLI) {
|
|
|
|
|
$method = $_SERVER['REQUEST_METHOD'];
|
|
|
|
|
@ -127,6 +135,7 @@ class Router implements IRouter {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* loads the api routes
|
|
|
|
|
*
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
public function loadRoutes($app = null) {
|
|
|
|
|
@ -290,6 +299,7 @@ class Router implements IRouter {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the url generator
|
|
|
|
|
*
|
|
|
|
|
* @return \Symfony\Component\Routing\Generator\UrlGenerator
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
@ -311,11 +321,17 @@ class Router implements IRouter {
|
|
|
|
|
*/
|
|
|
|
|
public function generate($name, $parameters = array(), $absolute = false) {
|
|
|
|
|
$this->loadRoutes();
|
|
|
|
|
return $this->getGenerator()->generate($name, $parameters, $absolute);
|
|
|
|
|
try {
|
|
|
|
|
return $this->getGenerator()->generate($name, $parameters, $absolute);
|
|
|
|
|
} catch (RouteNotFoundException $e) {
|
|
|
|
|
$this->logger->logException($e);
|
|
|
|
|
return '';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* To isolate the variable scope used inside the $file it is required in it's own method
|
|
|
|
|
*
|
|
|
|
|
* @param string $file the route file location to include
|
|
|
|
|
* @param string $appName
|
|
|
|
|
*/
|
|
|
|
|
@ -331,6 +347,7 @@ class Router implements IRouter {
|
|
|
|
|
* \OCA\MyApp\AppInfo\Application. If that class does not exist, a default
|
|
|
|
|
* App will be intialized. This makes it optional to ship an
|
|
|
|
|
* appinfo/application.php by using the built in query resolver
|
|
|
|
|
*
|
|
|
|
|
* @param array $routes the application routes
|
|
|
|
|
* @param string $appName the name of the app.
|
|
|
|
|
*/
|
|
|
|
|
|