snicco / http-routing-bundle
v2.0.0-beta.9
2024-09-07 14:27 UTC
Requires
- php: ^7.4|^8.0
- laminas/laminas-httphandlerrunner: ^2.1
- nyholm/psr7-server: ^1.0.2
- psr/log: ^1.1.1
- snicco/better-wp-api: ^2.0
- snicco/better-wp-hooks-bundle: ^2.0
- snicco/event-dispatcher: ^2.0
- snicco/http-routing: ^2.0
- snicco/kernel: ^2.0
- snicco/minimal-logger: ^2.0
- snicco/psr7-error-handler: ^2.0
- snicco/str-arr: ^2.0
- webimpress/safe-writer: ^2.2
- webmozart/assert: ^1.10
Requires (Dev)
- codeception/codeception: ^4.1.29
- guzzlehttp/psr7: ^2.1
- laminas/laminas-diactoros: ^2.8
- lucatume/wp-browser: ~3.1.4
- nyholm/psr7: ^1.0.0
- phpunit/phpunit: ^9.5.13
- snicco/http-routing-testing: ^2.0
- snicco/pimple-bridge: ^2.0
- snicco/testing-bundle: ^2.0
Conflicts
- snicco/better-wp-cache: <2.0.0-beta.9
- snicco/better-wp-cache-bundle: <2.0.0-beta.9
- snicco/better-wp-cli: <2.0.0-beta.9
- snicco/better-wp-cli-testing: <2.0.0-beta.9
- snicco/better-wp-hooks: <2.0.0-beta.9
- snicco/better-wp-mail: <2.0.0-beta.9
- snicco/better-wp-mail-bundle: <2.0.0-beta.9
- snicco/better-wp-mail-testing: <2.0.0-beta.9
- snicco/better-wpdb: <2.0.0-beta.9
- snicco/better-wpdb-bundle: <2.0.0-beta.9
- snicco/blade-bridge: <2.0.0-beta.9
- snicco/blade-bundle: <2.0.0-beta.9
- snicco/content-negotiation-middleware: <2.0.0-beta.9
- snicco/debug-bundle: <2.0.0-beta.9
- snicco/default-headers-middleware: <2.0.0-beta.9
- snicco/eloquent: <2.0.0-beta.9
- snicco/encryption-bundle: <2.0.0-beta.9
- snicco/event-dispatcher-testing: <2.0.0-beta.9
- snicco/guests-only-middleware: <1.0.0
- snicco/http-routing-testing: <2.0.0-beta.9
- snicco/https-only-middleware: <2.0.0-beta.9
- snicco/illuminate-container-bridge: <2.0.0-beta.9
- snicco/kernel-testing: <2.0.0-beta.9
- snicco/method-override-middleware: <2.0.0-beta.9
- snicco/must-match-route-middleware: <2.0.0-beta.9
- snicco/no-robots-middleware: <2.0.0-beta.9
- snicco/open-redirect-protection-middleware: <2.0.0-beta.9
- snicco/payload-middleware: <2.0.0-beta.9
- snicco/pimple-bridge: <2.0.0-beta.9
- snicco/psr7-error-handler: <1.0.0
- snicco/redirect-middleware: <2.0.0-beta.9
- snicco/session: <2.0.0-beta.9
- snicco/session-bundle: <2.0.0-beta.9
- snicco/session-psr16-bridge: <2.0.0-beta.9
- snicco/session-testing: <2.0.0-beta.9
- snicco/session-wp-bridge: <2.0.0-beta.9
- snicco/share-cookies-middleware: <2.0.0-beta.9
- snicco/signed-url: <2.0.0-beta.9
- snicco/signed-url-psr15-bridge: <2.0.0-beta.9
- snicco/signed-url-psr16-bridge: <2.0.0-beta.9
- snicco/signed-url-testing: <2.0.0-beta.9
- snicco/signed-url-wp-bridge: <2.0.0-beta.9
- snicco/templating: <2.0.0-beta.9
- snicco/templating-bundle: <2.0.0-beta.9
- snicco/testable-clock: <2.0.0-beta.9
- snicco/testing-bundle: <2.0.0-beta.9
- snicco/trailing-slash-middleware: <2.0.0-beta.9
- snicco/wp-auth-only-middleware: <2.0.0-beta.9
- snicco/wp-capability-middleware: <2.0.0-beta.9
- snicco/wp-capapility-middleware: <1.0.0
- snicco/wp-guests-only-middleware: <2.0.0-beta.9
- snicco/wp-nonce-middleware: <2.0.0-beta.9
- dev-master
- v2.0.0-beta.9
- v2.0.0-beta.8
- v2.0.0-beta.7
- v2.0.0-beta.6
- v2.0.0-beta.5
- v2.0.0-beta.4
- v2.0.0-beta.3
- v2.0.0-beta.2
- v2.0.0-beta.1
- v1.10.1
- v1.10.0
- v1.9.1
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.0
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.0
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- dev-beta
This package is auto-updated.
Last update: 2024-09-07 14:27:54 UTC
README
此 WordPress 扩展配置了独立的 snicco/http-routing
库,以便在基于 snicco/kernel
的应用程序中使用。
安装
composer install snicco/http-routing-bundle
配置
此扩展具有广泛的配置选项
- 请参阅 config/routing.php 以获取可用的路由配置选项。
- 请参阅 config/middleware.php 以获取可用的中间件配置选项。
- 请参阅 config/http_error_handling.php 以获取可用的错误处理配置选项。
如果这些文件在您的配置目录中不存在,则首次以开发模式启动内核时将复制默认配置。
将 HttpRoutingBundle
添加到您的 bundles.php
配置文件中。
<?php // /path/to/configuration/bundles.php use Snicco\Bundle\HttpRouting\HttpRoutingBundle; return [ 'bundles' => [ Snicco\Component\Kernel\ValueObject\Environment::ALL => [ HttpRoutingBundle::class ] ] ];
使用方法
此扩展提供了应使用的主要服务
HttpKernelRunner
: 在正确的时间将当前请求发送到您的应用程序。此类作为HTTP请求-响应周期的入口点。WPAdminMenu
: 使用由您的路由定义配置的AdminMenu
,以便将其与 WordPress 管理菜单集成。
以下是一个插件引导文件的示例
<?php use Snicco\Bundle\HttpRouting\HttpKernelRunner; use Snicco\Bundle\HttpRouting\WPAdminMenu; use Snicco\Component\Kernel\Kernel; // Create kernel /** * @var Kernel $kernel */ $kernel->boot(); /** * @var HttpKernelRunner $runner */ $runner = $kernel->container()->make(HttpKernelRunner::class); $is_admin = is_admin(); $runner->listen($is_admin); if ($is_admin) { /** * @var WPAdminMenu $admin_menu */ $admin_menu = $kernel->container()->make(WPAdminMenu::class); $admin_menu->setUp('my-plugin-text-domain'); }
请求和响应
此扩展负责在 WordPress 请求生命周期中的正确时刻运行 snicco/http-routing
库的中间件管道。
可以处理三种类型的请求
- API请求,URI路径以您的 路由配置 中定义的API路径前缀开始的请求。
- 管理请求,前往WordPress管理区域的请求。
- 前端请求,所有其他请求。
HttpKernelRunner::listen()
方法根据当前请求类型设置适当的钩子,然后将请求通过您的应用程序。
您的所有中间件和控制器可以返回三种类型的响应
DelegatedResponse
,带有应发送的标头DelegatedResponse
,不带标头- 任何其他 PSR-7 响应
根据当前请求类型,以下是对每种响应类型发生的情况
- API请求 / 前端请求
- 管理请求
中间件
此扩展提供了一组可以在您的应用程序中使用的 PSR-15 中间件
ErrorsToExceptions
: 将中间件管道中的所有错误转换为适当的异常。强烈推荐。SetUserId
: 将当前 WordPress 用户的用户 ID 添加到请求中。SimpleTemplating
:添加了一个简单的中间件来渲染ViewResponses
,其中视图名称必须是一个绝对路径。
错误处理
此捆绑包自动配置了由snicco/http-routing
使用的snicco/psr7-error-handler
库。
您可以使用http_error_handling
配置来配置此行为。
所有在您的中间件管道中的异常都将自动处理。WordPress核心代码和插件完全不受此影响。
贡献
此存储库是Snicco项目的开发存储库的只读分支。
报告问题和发送拉取请求
请在Snicco monorepo中报告问题。
安全
如果您在BetterWPCache中发现安全漏洞,请遵循我们的披露程序。