wordpress-psr / request-handler
WordPress 的 PSR-15 服务器请求处理器。
Requires
- php: >=7.1
- dflydev/fig-cookies: ^3.0
- johnpbloch/wordpress-core-installer: ^2.0
- psr/http-factory: ^1.0
- psr/http-message: ~1.0
- psr/http-server-handler: ~1.0
- psr/http-server-middleware: ^1.0
- superdav42/wordpress-core: dev-master
- symfony/polyfill-php80: ^1.22.1
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.0
- friendsofphp/php-cs-fixer: ^2.18.2
- laminas/laminas-diactoros: ~2.2
- laminas/laminas-httphandlerrunner: ^1.3
- nyholm/psr7: ^1.4
- phpstan/phpstan: ^0.12.80
- phpunit/phpunit: ^9.3.8
- rector/rector: dev-main
- roave/security-advisories: dev-master
- wp-coding-standards/wpcs: ^2.3.0
Suggests
- rector/rector: Modify code on-the-fly to use PSR functions.
Provides
This package is auto-updated.
Last update: 2024-09-06 11:14:16 UTC
README
一个围绕 WordPress 核心的 PSR-15 请求处理器包装器。
安装
$ composer require wordpress-psr/request-handler
概述
此软件包允许 WordPress 安装在 PSR 请求和响应上下文中使用。此软件包本身并不是非常有用,但可以与任何数量的 请求处理器运行器 或 中间件 结合使用,以实现以前无法实现的方式使用 WordPress。
Swoole
使用此请求处理器并将其与 chubbyphp-swoole-request-handler 结合使用,可以在持久、高性能、事件驱动、异步的 swoole http 服务器上运行 WordPress。有关更多详细信息,请参阅 WordPress PSR Swoole 项目。除了 Swoole 之外,由于此请求处理器使用 psr-15 标准,其他事件驱动库,如 react 或 amp,也应该可以正常工作。
示例用法
请参阅 tests/server.php 以查看此请求处理器如何使用的一个工作示例。该文件被用于测试 nginx 配置文件中的此行以测试请求处理器
try_files $uri /wordpress/$uri /tests/server.php?$args;
这是必要的,以便可以访问 wordpress 子文件夹中的静态文件,其他所有内容都由 server.php 处理。
WordPress 修改
需要修改 WordPress 核心代码才能使请求处理器的某些方面正常工作。这些更改目前保存在一个 分支 中,但希望一旦证明其有用性,这些更改就可以合并到核心中。Rector 被用于进行一些修改,例如将所有对 exit
或 die
的调用更改为调用新的函数 wp_exit
。 wp_exit()
仅在调用 exit 之前执行 action wp_exit
,以便此请求处理器可以抛出一个异常,将执行流程返回给请求处理器,该请求处理器返回一个响应对象而不是退出。
所有对 header()
和 setcookie
的调用也进行了更改,以触发此请求处理器挂钩到的操作。该钩子记录了头部和 Cookie,以便可以将它们添加到响应对象中。其他更改允许 WordPress 作为长时间运行的过程工作。主要是在适当的地方使用 require
而不是 require_once
。
许可协议
GPL,请参阅 LICENSE。