Remove some IRouter methods

This is not the end. IRouter needs to burn.
But it is a start.

🎵 we didn't start the fire 🎵

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2020-07-06 16:00:58 +02:00
parent 5acabcf5cb
commit 72a9c35be3
No known key found for this signature in database
GPG Key ID: F941078878347C0C
8 changed files with 17 additions and 95 deletions

View File

@ -1005,7 +1005,7 @@ class OC {
OC_App::loadApps(['filesystem', 'logging']); OC_App::loadApps(['filesystem', 'logging']);
OC_App::loadApps(); OC_App::loadApps();
} }
OC::$server->getRouter()->match(\OC::$server->getRequest()->getRawPathInfo()); OC::$server->get(\OC\Route\Router::class)->match(\OC::$server->getRequest()->getRawPathInfo());
return; return;
} catch (Symfony\Component\Routing\Exception\ResourceNotFoundException $e) { } catch (Symfony\Component\Routing\Exception\ResourceNotFoundException $e) {
//header('HTTP/1.0 404 Not Found'); //header('HTTP/1.0 404 Not Found');

View File

@ -32,7 +32,7 @@ declare(strict_types=1);
namespace OC\AppFramework\Routing; namespace OC\AppFramework\Routing;
use OC\AppFramework\DependencyInjection\DIContainer; use OC\AppFramework\DependencyInjection\DIContainer;
use OCP\Route\IRouter; use OC\Route\Router;
/** /**
* Class RouteConfig * Class RouteConfig
@ -42,7 +42,7 @@ class RouteConfig {
/** @var DIContainer */ /** @var DIContainer */
private $container; private $container;
/** @var IRouter */ /** @var Router */
private $router; private $router;
/** @var array */ /** @var array */
@ -65,11 +65,11 @@ class RouteConfig {
/** /**
* @param \OC\AppFramework\DependencyInjection\DIContainer $container * @param \OC\AppFramework\DependencyInjection\DIContainer $container
* @param \OCP\Route\IRouter $router * @param \OC\Route\Router $router
* @param array $routes * @param array $routes
* @internal param $appName * @internal param $appName
*/ */
public function __construct(DIContainer $container, IRouter $router, $routes) { public function __construct(DIContainer $container, Router $router, $routes) {
$this->routes = $routes; $this->routes = $routes;
$this->container = $container; $this->container = $container;
$this->router = $router; $this->router = $router;

View File

@ -177,14 +177,6 @@ class Router implements IRouter {
\OC::$server->getEventLogger()->end('loadroutes' . $requestedApp); \OC::$server->getEventLogger()->end('loadroutes' . $requestedApp);
} }
/**
* @return string
* @deprecated
*/
public function getCacheKey() {
return '';
}
/** /**
* @param string $name * @param string $name
* @return \Symfony\Component\Routing\RouteCollection * @return \Symfony\Component\Routing\RouteCollection

View File

@ -39,12 +39,12 @@ declare(strict_types=1);
namespace OC; namespace OC;
use OC\Route\Router;
use OCA\Theming\ThemingDefaults; use OCA\Theming\ThemingDefaults;
use OCP\ICacheFactory; use OCP\ICacheFactory;
use OCP\IConfig; use OCP\IConfig;
use OCP\IRequest; use OCP\IRequest;
use OCP\IURLGenerator; use OCP\IURLGenerator;
use OCP\Route\IRouter;
use RuntimeException; use RuntimeException;
/** /**
@ -57,13 +57,13 @@ class URLGenerator implements IURLGenerator {
private $cacheFactory; private $cacheFactory;
/** @var IRequest */ /** @var IRequest */
private $request; private $request;
/** @var IRouter*/ /** @var Router */
private $router; private $router;
public function __construct(IConfig $config, public function __construct(IConfig $config,
ICacheFactory $cacheFactory, ICacheFactory $cacheFactory,
IRequest $request, IRequest $request,
IRouter $router) { Router $router) {
$this->config = $config; $this->config = $config;
$this->cacheFactory = $cacheFactory; $this->cacheFactory = $cacheFactory;
$this->request = $request; $this->request = $request;

View File

@ -41,6 +41,7 @@ declare(strict_types=1);
namespace OCP\AppFramework; namespace OCP\AppFramework;
use OC\AppFramework\Routing\RouteConfig; use OC\AppFramework\Routing\RouteConfig;
use OC\Route\Router;
use OC\ServerContainer; use OC\ServerContainer;
use OCP\Route\IRouter; use OCP\Route\IRouter;
@ -146,6 +147,10 @@ class App {
* @deprecated 20.0.0 Just return an array from your routes.php * @deprecated 20.0.0 Just return an array from your routes.php
*/ */
public function registerRoutes(IRouter $router, array $routes) { public function registerRoutes(IRouter $router, array $routes) {
if (!($router instanceof Router)) {
throw new \RuntimeException('Can only setup routes with real router');
}
$routeConfig = new RouteConfig($this->container, $router, $routes); $routeConfig = new RouteConfig($this->container, $router, $routes);
$routeConfig->register(); $routeConfig->register();
} }

View File

@ -36,50 +36,6 @@ namespace OCP\Route;
*/ */
interface IRouter { interface IRouter {
/**
* Get the files to load the routes from
*
* @return string[]
* @since 7.0.0
* @deprecated 9.0.0
*/
public function getRoutingFiles();
/**
* @return string
* @since 7.0.0
* @deprecated 9.0.0
*/
public function getCacheKey();
/**
* Loads the routes
*
* @param null|string $app
* @since 7.0.0
* @deprecated 9.0.0
*/
public function loadRoutes($app = null);
/**
* Sets the collection to use for adding routes
*
* @param string $name Name of the collection to use.
* @return void
* @since 7.0.0
* @deprecated 9.0.0
*/
public function useCollection($name);
/**
* returns the current collection name in use for adding routes
*
* @return string the collection name
* @since 8.0.0
* @deprecated 9.0.0
*/
public function getCurrentCollection();
/** /**
* Create a \OCP\Route\IRoute. * Create a \OCP\Route\IRoute.
* *
@ -92,35 +48,4 @@ interface IRouter {
* @deprecated 9.0.0 * @deprecated 9.0.0
*/ */
public function create($name, $pattern, array $defaults = [], array $requirements = []); public function create($name, $pattern, array $defaults = [], array $requirements = []);
/**
* Find the route matching $url.
*
* @param string $url The url to find
* @throws \Exception
* @return void
* @since 7.0.0
* @deprecated 9.0.0
*/
public function match($url);
/**
* Get the url generator
*
* @since 7.0.0
* @deprecated 9.0.0
*/
public function getGenerator();
/**
* Generate url based on $name and $parameters
*
* @param string $name Name of the route to use.
* @param array $parameters Parameters for the route
* @param bool $absolute
* @return string
* @since 7.0.0
* @deprecated 9.0.0
*/
public function generate($name, $parameters = [], $absolute = false);
} }

View File

@ -58,7 +58,7 @@ try {
// load all apps to get all api routes properly setup // load all apps to get all api routes properly setup
OC_App::loadApps(); OC_App::loadApps();
OC::$server->getRouter()->match('/ocsapp'.\OC::$server->getRequest()->getRawPathInfo()); OC::$server->get(\OC\Route\Router::class)->match('/ocsapp'.\OC::$server->getRequest()->getRawPathInfo());
} catch (ResourceNotFoundException $e) { } catch (ResourceNotFoundException $e) {
OC_API::setContentType(); OC_API::setContentType();

View File

@ -8,11 +8,11 @@
namespace Test; namespace Test;
use OC\Route\Router;
use OCP\ICacheFactory; use OCP\ICacheFactory;
use OCP\IConfig; use OCP\IConfig;
use OCP\IRequest; use OCP\IRequest;
use OCP\IURLGenerator; use OCP\IURLGenerator;
use OCP\Route\IRouter;
/** /**
* Class UrlGeneratorTest * Class UrlGeneratorTest
@ -27,7 +27,7 @@ class UrlGeneratorTest extends \Test\TestCase {
private $cacheFactory; private $cacheFactory;
/** @var \PHPUnit\Framework\MockObject\MockObject|IRequest */ /** @var \PHPUnit\Framework\MockObject\MockObject|IRequest */
private $request; private $request;
/** @var \PHPUnit\Framework\MockObject\MockObject|IRouter */ /** @var \PHPUnit\Framework\MockObject\MockObject|Router */
private $router; private $router;
/** @var IURLGenerator */ /** @var IURLGenerator */
private $urlGenerator; private $urlGenerator;
@ -39,7 +39,7 @@ class UrlGeneratorTest extends \Test\TestCase {
$this->config = $this->createMock(IConfig::class); $this->config = $this->createMock(IConfig::class);
$this->cacheFactory = $this->createMock(ICacheFactory::class); $this->cacheFactory = $this->createMock(ICacheFactory::class);
$this->request = $this->createMock(IRequest::class); $this->request = $this->createMock(IRequest::class);
$this->router = $this->createMock(IRouter::class); $this->router = $this->createMock(Router::class);
$this->urlGenerator = new \OC\URLGenerator( $this->urlGenerator = new \OC\URLGenerator(
$this->config, $this->config,
$this->cacheFactory, $this->cacheFactory,