用途:为 WordPress ActivityPub 插件提供 PHP 编码规范与架构约定,指导编写 PHP 代码、创建类、实现 WordPress 钩子以及组织目录结构。
主要能力与约定:
- 复用优先:优先使用 WordPress 核心函数,其次使用插件已有辅助函数(includes/functions*.php、Sanitize、src/shared/),不要用自定义逻辑替换基于核心函数的检查。
- 文件命名:class-{name}.php、trait-{name}.php、interface-{name}.php。
- 命名空间:Activitypub 及其子命名空间 Transformer、Collection、Handler、Activity、Rest。
- 文本域统一使用 'activitypub',如 __( 'Text', 'activitypub' )。
- 命名空间内调用 WordPress 全局函数需加反斜杠,如 \get_option()、\add_action()。
- 插件类用 use 导入,禁止内联命名空间;全局类(WordPress/PHP)内联加反斜杠,禁止 use 导入。
- 注释:多行用 /* */,单行用 //,逐行注释而非整块堆叠。
- 版本号:新代码统一写 'unreleased',发布脚本自动替换;弃用函数使用 _deprecated_function 等并传 'unreleased'。
架构模式:Transformer 将 WordPress 内容转为 ActivityPub 对象(基类 includes/transformer/class-base.php);Handler 处理来自远程服务器的 Follow、Create、Delete、Like 等入站活动;Collection 实现 Followers、Following 等集合;REST 控制器暴露端点,命名空间为 ACTIVITYPUB_REST_NAMESPACE。
常用辅助函数:get_remote_metadata_by_actor()、object_to_uri()、enrich_content_data()、Webfinger::resolve()、is_post_disabled()。
初始化模式:静态初始化 init() 注册钩子,或单例 get_instance()。自定义钩子包括 activitypub_handled_create、activitypub_followers_pre_remove_follower 等动作,以及 activitypub_activity_object_array、activitypub_the_content、activitypub_actor_types 等过滤器。
限制:资料未提供安装命令、收费信息或具体平台支持范围;完整规范见 docs/php-coding-standards.md 与 docs/php-class-structure.md。