b13/slimphp-bridge

提供用于在TYPO3前端站点中注册Slim PHP应用程序的中间件

安装次数: 25,780

依赖项: 1

建议者: 0

安全: 0

星级: 16

关注者: 5

分支: 4

类型:typo3-cms-extension

0.6.1 2024-06-17 08:50 UTC

This package is auto-updated.

Last update: 2024-09-17 10:57:15 UTC


README

在TYPO3前端请求的PSR-15中间件中启动SlimPHP应用程序。

为此你需要两件事

  1. 使用SlimPHP的RequestResponseArgs策略在PHP中创建你的端点
  2. 在你的站点配置文件中配置你的端点

清除缓存,然后你应该可以正常使用了。

描述

TYPO3 v9提供了一种灵活的方式,可以通过PSR-7和PSR-15钩入前端渲染过程并执行完全不同的操作。

SlimPHP也基于PSR标准,如果TYPO3开发者需要通过例如REST集成一个合适的API,则非常适合。

这个小包装扩展有助于快速开始使用小API层,但并不旨在成为TYPO3 CMS的完全无头解决方案。

然而,TYPO3 PHP开发者应该熟悉快速启动处理自定义端点,而不必编写TypoScript。

安装

通过composer req b13/slimphp-bridge安装(目前仅为composer安装,因为需要一些PHP依赖项)。

在TYPO3后端激活该扩展。

配置

然后调整你的站点配置以添加自定义路由。

type: slim条目启用SlimPHP应用程序。然后当前站点对象在请求对象中可用。

routes:
  - route: '/api'
    type: 'slim'
    # add middlewares for the whole application. Convenient for any error handling or adding Preflight checks (OPTIONS)
    middlewares:
      - 'B13\MyExtension\Middleware\PreflightCheck'
    groups:
    - route: '/v1'
      middlewares:
        # enable this if you don't manage your languages via the URL endpoint + the base site handling.
        - 'B13\SlimPhp\Middleware\PreferredClientLanguageSelector'
        # enable this if you need extbase in your custom setup
        - 'B13\SlimPhp\Middleware\ExtbaseBridge'
      routes:
        # load a file
        - methods: [any]
          route: '/schema.json'
          file: 'EXT:myextension/Resources/Private/Api/schema_v1.json'
          contentType: 'application/json'
        - methods: [get]
          route: '/article'
          callback: B13\MyExtension\Controller\LoadArticlesController
        - methods: [get]
          route: '/customer'
          callback: B13\MyExtension\Controller\CustomerController:fetchAll
          middlewares: [B13\MyExtension\Middleware\JwtAuthentication]
        - methods: [get]
          route: '/customer/{id}'
          callback: B13\MyExtension\Controller\Api\CustomerController:fetch
          middlewares: [B13\MyExtension\Middleware\JwtAuthentication]
        - methods: [put]
          route: '/customer/{id}'
          callback: B13\MyExtension\Controller\Api\CustomerController:update
          middlewares: [B13\MyExtension\Middleware\JwtAuthentication]

配置类似于使用SlimPHP和TYPO3所做的那样,你的控制器只需遵循SlimPHP中的RequestResponseArgs策略模式。

一旦创建你的端点(回调),清除缓存,你就可以直接运行你的安装。

TYPO3 10.4:如果你想在回调中使用DI,你将必须在DI配置中将它们公开

services:
  B13\MyExtension\Controller\Api\CustomerController:
    public: true

目前,该扩展包含Tobias Nyholm的PSR实现,因为它提供了适当的PSR-17工厂。

注意事项

每次更改配置时,请确保清除TYPO3核心缓存。

待办事项

  • 更多文档以开始并定义所有选项
  • 更多测试
  • 路由参数的更多灵活性
  • 适当的错误处理

许可证

与TYPO3核心一样,此扩展受GPL2或更高版本的许可。有关详细信息,请参阅LICENSE文件。

作者和维护

此扩展最初由Benni Mack为b13,斯图加特的客户项目创建。

查找我们开发的其他TYPO3扩展,这些扩展有助于我们在客户项目中创造价值。作为我们工作方式的一部分,我们专注于测试和最佳实践,以确保所有代码的长期性能、可靠性和结果。