smic/page-router-event

此包的最新版本(1.0.0)没有可用的许可证信息。

发送来自 PageRouter 的缺失的 PageUriGenerated PSR-14 事件

安装次数: 34,919

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 3

分支: 0

开放问题: 0

类型:typo3-cms-extension

1.0.0 2022-03-09 11:57 UTC

This package is auto-updated.

Last update: 2024-09-11 11:40:56 UTC


README

提供 PSR-14 事件以响应生成的页面 URI

TYPO3 核心代码 PageRouter 不提供修改生成 URL 的可能性。此扩展替换了 PageRouter->generateUri 方法,并分派一个 PSR-14 事件以响应或修改生成的 URL。

TYPO3 核心问题

在 forge 上为 TYPO3 核心创建了一个问题:#92780。此扩展被视为一个中间解决方案,一旦核心 PageRouter 提供此类事件,它就变得过时。

使用方法

安装

composer req smic/page-router-event dev-master

Services.yaml 中注册事件监听器

services:

  Vendor\MyExt\EventListener\ReactToGeneratedUri:
    tags:
      - name: event.listener
        identifier: 'MyExtReactToGeneratedUri'
        event: Smic\PageRouterEvent\Event\PageUriGenerated

您的事件监听器将接收到一个 Smic\PageRouterEvent\Event\PageUriGenerated 事件,该事件提供

  • 用于生成 URL 的输入数据的获取器 ->getFragment()->getParameters()->getRoute()->getSite()->getType()
  • 生成 URI 的获取器 ->getUri()
  • PageRouter 本身 ->getPageRouter()
  • 以及一个设置器以替换生成的 URI ->setUri($uri)

如果您不熟悉 TYPO3 中的 PSR-14 事件处理,请查看: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Hooks/EventDispatcher/Index.html