diff --git a/.github/workflows/backend-ci.yaml b/.github/workflows/backend-ci.yaml index 7e874ab1..e115e14e 100644 --- a/.github/workflows/backend-ci.yaml +++ b/.github/workflows/backend-ci.yaml @@ -44,17 +44,14 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Setup PHP Action - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - coverage: none - extensions: pdo_sqlite, gd - tools: cs2pr - - - uses: ramsey/composer-install@v3 + - name: Install Composer dependencies + uses: ibexa/gh-workflows/actions/composer-install@main with: - dependency-versions: highest + gh-client-id: ${{ secrets.AUTOMATION_CLIENT_ID }} + gh-client-secret: ${{ secrets.AUTOMATION_CLIENT_SECRET }} + satis-network-key: ${{ secrets.SATIS_NETWORK_KEY }} + satis-network-token: ${{ secrets.SATIS_NETWORK_TOKEN }} + composer-options: "--prefer-dist --no-progress --no-suggest" - name: Run PHPStan analysis run: composer run-script phpstan diff --git a/dependencies.json b/dependencies.json new file mode 100644 index 00000000..75018be2 --- /dev/null +++ b/dependencies.json @@ -0,0 +1,11 @@ +{ + "recipesEndpoint": "", + "packages": [ + { + "requirement": "dev-ibx-12046-symfony-deprecations as 6.0.x-dev", + "repositoryUrl": "https://github.com/ibexa/core", + "package": "ibexa/core", + "shouldBeAddedAsVCS": false + } + ] +} diff --git a/src/bundle/Resources/config/services.yml b/src/bundle/Resources/config/services.yml index 6176ebed..7108d2f5 100644 --- a/src/bundle/Resources/config/services.yml +++ b/src/bundle/Resources/config/services.yml @@ -63,7 +63,7 @@ services: - [setRequestStack, ["@request_stack"]] Ibexa\Rest\Server\Service\ExpressionRouterRootResourceBuilder: - arguments: ["@router", '@Ibexa\Bundle\Core\Routing\DefaultRouter', '@ibexa.config.resolver'] + arguments: ["@router", '@ibexa.rest.templated_router', '@ibexa.config.resolver'] Ibexa\Rest\Server\Controller: autowire: true @@ -401,12 +401,29 @@ services: tags: - { name: ibexa.rest.input.handler, format: xml } - Ibexa\Bundle\Core\Routing\DefaultRouter: - class: Ibexa\Bundle\Core\Routing\DefaultRouter + # Templated (RFC 6570) URI router. It is wrapped in the SiteAccess-aware router decorator, like router.default. + ibexa.rest.templated_router.inner: parent: hautelook.router.template calls: - [ setOption, [ strict_requirements, ~ ] ] + ibexa.rest.templated_router: + class: Ibexa\Bundle\Core\Routing\DefaultRouter + arguments: + $innerRouter: '@ibexa.rest.templated_router.inner' + $siteAccessRouter: '@Ibexa\Core\MVC\Symfony\SiteAccess\Router' + $nonSiteAccessAwareRoutes: '%ibexa.default_router.non_site_access_aware_routes%' + $logger: '@?logger' + + # BC alias: the templated router used to be registered under core's class name, which also captured + # autowiring of Ibexa\Bundle\Core\Routing\DefaultRouter. Inject ibexa.rest.templated_router explicitly instead. + Ibexa\Bundle\Core\Routing\DefaultRouter: + alias: ibexa.rest.templated_router + deprecated: + package: ibexa/rest + version: '6.0' + message: 'The "%alias_id%" service alias is deprecated, use "ibexa.rest.templated_router" instead.' + Ibexa\Bundle\Rest\Routing\ExpressionLanguage\ContentTypeHeaderMatcherExpressionFunction: arguments: $mediaTypeParser: '@Ibexa\Contracts\Rest\Input\MediaTypeParserInterface' diff --git a/src/bundle/Resources/config/value_object_visitors.yml b/src/bundle/Resources/config/value_object_visitors.yml index 802bc84d..d36d3982 100644 --- a/src/bundle/Resources/config/value_object_visitors.yml +++ b/src/bundle/Resources/config/value_object_visitors.yml @@ -3,7 +3,7 @@ services: calls: - [ setUriParser, [ '@Ibexa\Contracts\Rest\UriParser\UriParserInterface' ] ] - [ setRouter, [ "@router" ] ] - - [ setTemplateRouter, [ '@Ibexa\Bundle\Core\Routing\DefaultRouter'] ] + - [ setTemplateRouter, [ '@ibexa.rest.templated_router' ] ] # Errors ibexa.rest.output.value_object_visitor.InvalidArgumentException: