如何处理PHPDoc块对齐与PHPCS/PHPMD行宽规则冲突问题
PHPDoc对齐与行宽规则冲突的常规处理方案
行宽规则的核心目的是提升代码可读性,不需要教条执行,业内通常有三种处理方式,你可以根据团队规范选择:
- 优先保留对齐,给PHPDoc单独配置行宽例外
这是绝大多数PHP团队的选择,结构化的PHPDoc注解对齐后可读性远高于强行折行的版本。你可以直接调整PHPCS的Generic.Files.LineLength规则,要么设置ignoreComments = true忽略所有注释的行宽校验,要么更精细化的只排除@method、@param这类注解行的长度检查,不用修改现有文档就能解决警告问题。 - 不修改规则,超长说明部分单独换行缩进
如果团队不允许调整全局规则,可以把@method的类型、方法名、参数部分保持对齐,后面的描述文字单独起行,缩进至和上方说明文字的起始位置对齐即可,IDE可以正常识别这种格式的PHPDoc,示例如下:/** * ... * @method array getValidationRules() * Return the validation rules. * @method \App\Model\Invite check(string $code) * Return the invite if it exists and is valid. * @method \App\Model\Invite claim(\App\Model\Invite $invite, \App\Model\User $claimerUser) * Claim the invite. * @method \App\Model\Invite|null find(string $inviteCode) * Find the invitation if it exists. * ... */ - 放弃对齐,优先满足行宽要求
如果团队对行宽要求非常严格没有协商空间,就不要强行做垂直对齐,每个@method项的各个部分之间只用单个空格分隔即可,虽然可读性略差,但能完全符合规范要求。
不建议直接忽略警告,忽略规则的操作很容易在后续迭代中带进其他不符合规范的代码,要么调整规则适配实际场景,要么调整写法适配规则即可。
内容的提问来源于stack exchange,提问作者glaucomorais
相关产品推荐
相关产品推荐

