PHP_CodeSniffer 3.13.1版本发布:全面支持PHP 8.4非对称可见性特性
PHP_CodeSniffer是一个广受欢迎的PHP代码静态分析工具,它能够帮助开发者检测代码是否符合预定义的编码标准。该工具包含两个主要组件:phpcs用于检测代码规范问题,phpcbf用于自动修复部分代码风格问题。
新特性支持
本次3.13.1版本最重要的更新是全面支持了PHP 8.4引入的非对称可见性特性。这一特性允许类属性拥有不同的读取和写入可见性,为面向对象编程提供了更细粒度的访问控制。
在File类的getMemberProperties()方法中,新增了set_scope数组索引来支持这一特性。同时,在getMethodParameters()方法中也新增了set_visibility和set_visibility_token数组索引,以支持构造函数参数的非对称可见性。
相关代码检查规则更新
多个代码检查规则已更新以支持PHP 8.4的非对称可见性特性:
- Generic.PHP.LowerCaseKeyword:确保非对称可见性关键字使用正确的大小写
- PEAR.NamingConventions.ValidVariableName:验证带有非对称可见性的变量命名
- PSR2.Classes.PropertyDeclaration:检查属性声明中的非对称可见性使用
- 多个Squiz标准下的规则也进行了相应更新,包括注释对齐、变量注释、函数参数间距等
规则行为变更
PSR2.Classes.PropertyDeclaration规则现在会检查set-visibility修饰符关键字是否位于常规可见性关键字之后,并通过新的AvizKeywordOrder错误代码报告问题。
Squiz.Functions.FunctionDeclarationArgumentSpacing规则新增了对set-visibility修饰符关键字后空格的检查,使用新的SpacingAfterSetVisibility错误代码。
Squiz.Scope.MemberVarScope规则现在会在设置了"write"可见性但缺少"read"可见性时,通过AsymReadMissing错误代码单独报告问题。
文档改进
本次更新还对多个规则的文档进行了完善,特别是PEAR.Classes.ClassDeclaration和Squiz.WhiteSpace.FunctionOpeningBraceSpace规则的文档,使开发者能更清楚地理解这些规则的使用方法和目的。
其他改进
项目现在提供了永久链接来获取最新的XSD文件,方便开发者使用。同时,PHAR文件的GPG签名密钥已更新,新指纹为D91D86963AF3A29B6520462297B02DD8E5071466。
总结
PHP_CodeSniffer 3.13.1版本的发布,标志着这一工具对最新PHP特性的快速响应能力。通过全面支持PHP 8.4的非对称可见性特性,开发者现在可以在使用这一新特性的同时,继续保持代码的一致性和规范性。这些更新不仅增强了工具的实用性,也体现了PHP_CodeSniffer项目对PHP语言发展的持续关注和支持。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0191
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0118
Step-3.7-FlashStep-3.7-Flash是一个拥有 1980 亿参数的稀疏混合专家(MoE)视觉语言模型,由 1960 亿参数的语言主干网络和 18 亿参数的视觉编码器组合而成,具备原生图像理解能力。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
fun-rec推荐系统入门教程,在线阅读地址:https://datawhalechina.github.io/fun-rec/Python03
so-large-lm大模型基础: 一文了解大模型基础知识01