diff --git a/lib/base.php b/lib/base.php index 5b211a2d180b4f262262e9313f98f0b49f33a0eb..7f666daceb25d4ee368789f6eb438a59f342542e 100644 --- a/lib/base.php +++ b/lib/base.php @@ -1005,7 +1005,7 @@ class OC { OC_App::loadApps(['filesystem', 'logging']); OC_App::loadApps(); } - OC::$server->getRouter()->match(\OC::$server->getRequest()->getRawPathInfo()); + OC::$server->get(\OC\Route\Router::class)->match(\OC::$server->getRequest()->getRawPathInfo()); return; } catch (Symfony\Component\Routing\Exception\ResourceNotFoundException $e) { //header('HTTP/1.0 404 Not Found'); diff --git a/lib/private/AppFramework/Routing/RouteConfig.php b/lib/private/AppFramework/Routing/RouteConfig.php index 1921ce651283f2daacd6c1c09ce105cef1abb1b3..b382e7eb4b033b9122ea1c0c37cadc669edd0bd9 100644 --- a/lib/private/AppFramework/Routing/RouteConfig.php +++ b/lib/private/AppFramework/Routing/RouteConfig.php @@ -32,7 +32,7 @@ declare(strict_types=1); namespace OC\AppFramework\Routing; use OC\AppFramework\DependencyInjection\DIContainer; -use OCP\Route\IRouter; +use OC\Route\Router; /** * Class RouteConfig @@ -42,7 +42,7 @@ class RouteConfig { /** @var DIContainer */ private $container; - /** @var IRouter */ + /** @var Router */ private $router; /** @var array */ @@ -65,11 +65,11 @@ class RouteConfig { /** * @param \OC\AppFramework\DependencyInjection\DIContainer $container - * @param \OCP\Route\IRouter $router + * @param \OC\Route\Router $router * @param array $routes * @internal param $appName */ - public function __construct(DIContainer $container, IRouter $router, $routes) { + public function __construct(DIContainer $container, Router $router, $routes) { $this->routes = $routes; $this->container = $container; $this->router = $router; diff --git a/lib/private/Route/Router.php b/lib/private/Route/Router.php index 4e1264666e4948a6ee213e430e1db5a52ed92fbc..134e2cdadf08dc9591ab16b6e466a13f9aafc2ca 100644 --- a/lib/private/Route/Router.php +++ b/lib/private/Route/Router.php @@ -177,14 +177,6 @@ class Router implements IRouter { \OC::$server->getEventLogger()->end('loadroutes' . $requestedApp); } - /** - * @return string - * @deprecated - */ - public function getCacheKey() { - return ''; - } - /** * @param string $name * @return \Symfony\Component\Routing\RouteCollection diff --git a/lib/private/URLGenerator.php b/lib/private/URLGenerator.php index d7de6cf92a2b68e03c9314aa59d0198762e247bc..f0de31568f4d647ecdebaeb436203186219acd75 100644 --- a/lib/private/URLGenerator.php +++ b/lib/private/URLGenerator.php @@ -39,12 +39,12 @@ declare(strict_types=1); namespace OC; +use OC\Route\Router; use OCA\Theming\ThemingDefaults; use OCP\ICacheFactory; use OCP\IConfig; use OCP\IRequest; use OCP\IURLGenerator; -use OCP\Route\IRouter; use RuntimeException; /** @@ -57,13 +57,13 @@ class URLGenerator implements IURLGenerator { private $cacheFactory; /** @var IRequest */ private $request; - /** @var IRouter*/ + /** @var Router */ private $router; public function __construct(IConfig $config, ICacheFactory $cacheFactory, IRequest $request, - IRouter $router) { + Router $router) { $this->config = $config; $this->cacheFactory = $cacheFactory; $this->request = $request; diff --git a/lib/public/AppFramework/App.php b/lib/public/AppFramework/App.php index 06d4b36384feae56be5a38b2974b4b1279d7b159..4cbd1f8d32c3192cc169ba7ce0b156c50f2c1ebd 100644 --- a/lib/public/AppFramework/App.php +++ b/lib/public/AppFramework/App.php @@ -41,6 +41,7 @@ declare(strict_types=1); namespace OCP\AppFramework; use OC\AppFramework\Routing\RouteConfig; +use OC\Route\Router; use OC\ServerContainer; use OCP\Route\IRouter; @@ -146,6 +147,10 @@ class App { * @deprecated 20.0.0 Just return an array from your routes.php */ 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->register(); } diff --git a/lib/public/Route/IRouter.php b/lib/public/Route/IRouter.php index d837265ac71e6fef329244833a5ee7de576df3b8..cb51cc0b640643e6dffe9415b4a5474c02807b01 100644 --- a/lib/public/Route/IRouter.php +++ b/lib/public/Route/IRouter.php @@ -36,50 +36,6 @@ namespace OCP\Route; */ 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. * @@ -92,35 +48,4 @@ interface IRouter { * @deprecated 9.0.0 */ 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); } diff --git a/ocs/v1.php b/ocs/v1.php index f4ddc80804a39496f7effda89d9ddc6d1b5ef5f9..e513857658424b706698ad7f6cf5dbf97063af52 100644 --- a/ocs/v1.php +++ b/ocs/v1.php @@ -58,7 +58,7 @@ try { // load all apps to get all api routes properly setup 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) { OC_API::setContentType(); diff --git a/tests/lib/UrlGeneratorTest.php b/tests/lib/UrlGeneratorTest.php index b5db39dbf39c3bd453cb7f791f8e318b9e9d2a75..dd2eb2ddc631a6b0263a00f6d05196999c510241 100644 --- a/tests/lib/UrlGeneratorTest.php +++ b/tests/lib/UrlGeneratorTest.php @@ -8,11 +8,11 @@ namespace Test; +use OC\Route\Router; use OCP\ICacheFactory; use OCP\IConfig; use OCP\IRequest; use OCP\IURLGenerator; -use OCP\Route\IRouter; /** * Class UrlGeneratorTest @@ -27,7 +27,7 @@ class UrlGeneratorTest extends \Test\TestCase { private $cacheFactory; /** @var \PHPUnit\Framework\MockObject\MockObject|IRequest */ private $request; - /** @var \PHPUnit\Framework\MockObject\MockObject|IRouter */ + /** @var \PHPUnit\Framework\MockObject\MockObject|Router */ private $router; /** @var IURLGenerator */ private $urlGenerator; @@ -39,7 +39,7 @@ class UrlGeneratorTest extends \Test\TestCase { $this->config = $this->createMock(IConfig::class); $this->cacheFactory = $this->createMock(ICacheFactory::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->config, $this->cacheFactory,