Workerman 5.2.3 对自定义协议类无强制命名关键字或后缀要求,但必须类名与文件名一致且实现 input、decode、encode 三个静态方法;推荐大驼峰命名(如 JsonNL)、置于 Protocols/ 目录、命名空间为 Protocols,避免冗余后缀和非法字符。

Workerman 5.2.3 对自定义协议类的命名没有强制性的关键字或后缀要求,但必须满足两个硬性条件:类名需与文件名一致,且类中必须实现 input、decode、encode 三个静态方法。
实际项目中,为便于识别和维护,社区普遍采用以下命名习惯:
类名使用大驼峰(PascalCase),清晰表达协议语义
例如:JsonNL、BinaryHeader、LengthPrefixed、MsgPackLine文件名与类名完全一致,放在
Protocols/目录下(路径需与命名空间匹配)
例如:Protocols/JsonNL.php→class JsonNL-
命名空间推荐统一为
Protocols(Workerman 官方示例约定)namespace Protocols; class JsonNL { /* ... */ } 避免使用
Protocol、Handler、Parser等冗余后缀(如JsonNLProtocol不必要),因为类本身就在Protocols/下,语义已明确不建议用纯数字、下划线开头、或包含特殊符号(如
My_Protocol或123Json),PHP 类名需符合标识符规范
只要满足接口契约(三个静态方法 + 正确命名空间 + 文件路径可自动加载),Workerman 就能正常识别并调用。命名本质是工程规范,不是框架限制。

















