taproot/micropub-adapter

将micropub支持添加到现有或新应用程序的最简单方法。

v0.1.3 2023-07-24 13:55 UTC

This package is auto-updated.

Last update: 2024-08-24 16:09:59 UTC


README

Latest Stable Version License Total Downloads

taproot/micropub-adapter 是通过 PSR-7 为任何 PHP 网页应用添加 Micropub 支持的简单且灵活的方式。

快速链接

安装

taproot/micropub-adapter 目前已针对 PHP 7.3, 7.4, 8.0 和 8.1 进行测试且兼容。

使用 composer 安装 taproot/micropub-adapter

composer.phar require taproot/micropub-adapter
composer.phar install (or composer.phar update)

版本发布都经过 GPG 签名,因此您可以验证代码未被篡改。

gpg --recv-keys 1C00430B19C6B426922FE534BEF8CE58118AD524
cd vendor/taproot/micropub-adapter
git tag -v v0.1.3 # Replace with the version you have installed

用法

继承 MicropubAdapter

micropub-adapter 定义了一个抽象类,Taproot\Micropub\MicropubAdapter,该类实现了 micropub 和 micropub 媒体端点的请求处理逻辑。它解析传入的 micropub 请求并将它们分派到每个操作的回调方法(创建、删除、更新等)。它处理基本的验证和错误条件,为您规范化传入的数据,并将回调方法的返回值转换为有效的响应。

您需要做的就是继承 MicropubAdapter 并实现您要支持的操作的相应回调方法。然后,在您的应用程序中创建一个适配器实例,并在 micropub 和媒体端点请求中分别调用 handleRequest()handleMediaEndpointRequest()

请参阅示例应用程序以了解如何继承和使用 MicropubAdapter

回调方法

请参阅 API 文档以了解每个回调的参数和可能的返回值。可选的回调具有默认的空操作实现。

任何功能都需要

  • verifyAccessTokenCallback():此回调负责验证用于授权 micropub 请求的访问令牌,并为其他回调提供用户/作用域数据。

micropub 端点动作回调 - 实现您用例中相关的任何回调

媒体端点回调 - 实现以启用媒体端点。由于路由超出了此库的范围,您需要将 media-endpoint 值添加到 configurationQueryCallback() 返回的数组中,以便客户端能够发现媒体端点。

扩展回调 - 这些回调在传入请求经过认证后,但在任何 micropub 特定处理之前被调用。这允许您的子类实现 micropub 扩展。这些方法的实现应检查请求是否需要扩展处理(例如,没有 url 参数的 ?q=source 请求,如果没有通过 sourceQueryCallback() 的逻辑处理,则将返回错误)。如果请求需要扩展处理,则处理它并返回响应或错误值。否则,返回 false 以继续按常规处理请求。

访问令牌和 IndieAuth

您需要一种方式来验证用于认证micropub请求的访问令牌 —— 事实上,verifyAccessTokenCallback() 是您必须实现的方法!如果您的应用还没有能够创建和验证访问令牌的 IndieAuth 端点,您可能希望使用配套库 taproot/indieauth 来为您的应用添加indieauth支持。示例应用使用了 taproot/indieauth,因此您可以参考它来了解如何一起使用这两个库。

贡献

如果您对使用此库有任何疑问,请加入 indieweb 聊天室 并联系 barnaby

如果您发现库中的错误或问题,或想建议新功能,请 创建一个问题

如果讨论导致您想要提交一个拉取请求,虽然这不是必需的,但按照以下流程操作将增加其快速被接受的机会

  • 将此存储库叉到您的github账户中,并将其克隆到您的开发计算机上。
  • 运行 ./run_coverage.sh 并确保所有测试通过 —— 您将需要XDebug来获取代码覆盖率数据。
  • 如有适用,编写失败的回归测试,例如修复错误时的测试。
  • 进行更改。
  • 运行 ./run_coverage.shopen docs/coverage/index.html。确保您所做的更改已通过测试。taproot/micropub-adapter 从 0.1.0 版本开始就有 100% 的测试覆盖率,这个数字不应该下降!
  • 运行 ./vendor/bin/psalm 并修复它带来的任何警告。
  • 安装并运行 ./phpDocumentor.phar 以生成文档(如有适用)。
  • 推送您的更改并提交PR。

变更日志

v0.1.3

2023-07-24

  • 正确处理存在多个 content-type 标头的JSON请求 —— 感谢 @oddevan!

(0.1.2 版本因标记错误提交而缺失)

v0.1.1

2022-10-03

  • 更新示例以使用来自 taproot/indieauth 的最新功能
  • 允许使用 psr/log v2 和 v3
  • 允许在测试时使用 monolog v3
  • 将 PHP 8.1 添加到测试矩阵中,启用手动调度。

v0.1.0

2021-06-24

首次发布。