From 216da3a81c900ba21a656d2e21de552377157d4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Wed, 14 May 2025 00:15:46 +0200 Subject: [PATCH] fix: Deprecate action and actionInclude from routes and fix actionInclude MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- lib/private/Route/Route.php | 10 ++-------- lib/private/Route/Router.php | 4 ++++ lib/public/Route/IRoute.php | 4 +++- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/private/Route/Route.php b/lib/private/Route/Route.php index ab5a1f6b59a..08231649e76 100644 --- a/lib/private/Route/Route.php +++ b/lib/private/Route/Route.php @@ -124,15 +124,9 @@ class Route extends SymfonyRoute implements IRoute { * The action to execute when this route matches, includes a file like * it is called directly * @param string $file - * @return void */ public function actionInclude($file) { - $function = function ($param) use ($file) { - unset($param['_route']); - $_GET = array_merge($_GET, $param); - unset($param); - require_once "$file"; - } ; - $this->action($function); + $this->setDefault('file', $file); + return $this; } } diff --git a/lib/private/Route/Router.php b/lib/private/Route/Router.php index 376852a1b6e..b0c355dcbee 100644 --- a/lib/private/Route/Router.php +++ b/lib/private/Route/Router.php @@ -322,6 +322,10 @@ class Router implements IRouter { call_user_func($action, $parameters); $this->eventLogger->end('route:run:call'); } elseif (isset($parameters['file'])) { + $param = $parameters; + unset($param['_route']); + $_GET = array_merge($_GET, $param); + unset($param); include $parameters['file']; } else { throw new \Exception('no action available'); diff --git a/lib/public/Route/IRoute.php b/lib/public/Route/IRoute.php index fffd4b9c1a1..7dba6225aff 100644 --- a/lib/public/Route/IRoute.php +++ b/lib/public/Route/IRoute.php @@ -34,8 +34,9 @@ interface IRoute { * it is called directly * * @param string $file - * @return void + * @return $this * @since 7.0.0 + * @deprecated 32.0.0 Use a proper controller instead */ public function actionInclude($file); @@ -70,6 +71,7 @@ interface IRoute { * This function is called with $class set to a callable or * to the class with $function * @since 7.0.0 + * @deprecated 32.0.0 Use a proper controller instead */ public function action($class, $function = null);