[!!!][FEATURE] Introduce PSR-7-based Routing for Backend AJAX Requests
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / master / Feature-69916-PSR-7-basedRoutingForBackendAJAXRequests.rst
1 ===============================================================
2 Feature: #69916 - PSR-7-based Routing for Backend AJAX Requests
3 ===============================================================
4
5 Description
6 ===========
7
8 Support for PSR-7-based Routing for Backend AJAX requests has been added.
9
10
11 Impact
12 ======
13
14 To add a route for an AJAX request, create the :file:`Configuration/Backend/AjaxRoutes.php` of your extension:
15
16 .. code-block:: php
17
18         return [
19                 // Does something
20                 'unique_route_name' => [
21                         'path' => '/toolcollection/some-action',
22                         'target' => \ACME\Controller\SomeController::class . '::myAction',
23                 ]
24         ];
25
26 The unique_route_name (route identifier) parameter acts as the previously known key to
27 call ``BackendUtility::getAjaxUrl()`` passed as parameter to the action refers to the route path,
28 **not** to the route identifier itself. AJAX handlers configured in :file:`AjaxRoutes.php` are **not** compatible
29 with definitions in :file:`ext_localconf.php` registered by ``ExtensionManagementUtility::registerAjaxHandler()``
30 due to different method signatures in the target actions, using PSR-7.
31
32 The route identifier is used in ``BackendUtility::getAjaxUrl()`` as `$ajaxIdentifier`` and as key in the global
33 ``TYPO3.settings.ajaxUrls`` JavaScript object.