SuperAPI AI 工具集

unopim-standards

编程与开发

查看项目

更新于 10-16 04:39

技能介绍

用途

UnoPim Standards 是面向 UnoPim 代码库的规范级规则集,适用于编写或修改任何 UnoPim 代码的场景。其目标是提供一套需要判断力的编码规则,而非机械可检测的格式要求。每条规则都引用 UnoPim 检出目录($UNOPIM)中 packages/Webkul/ 下的真实文件作为应复制的范例,要求遵循范例,而不是发明通用的 Laravel 替代方案。

主要能力

规则集按主题组织为多个参考文件:

  • laravel13.md:Laravel 13 / PHP 8.4 惯用法,包括 promoted constructors、显式类型、基于 attribute 的模型与 casts()、src/Enums/ 中的枚举、FormRequest、API Resources、命名路由、match()、优先使用第一方而非自定义实现。
  • security.md:fail-open ACL 及其关闭方式、also_authorizes、控制器内 bouncer()、FormRequest authorize()、上传允许列表、DataGrid XSS、批量赋值、SSRF、CSV 公式注入、静态密钥、CSRF。
  • performance.md:预加载、循环或 Blade 中禁止查询、Cache::remember、RequestMemo,以及 Octane 下 scoped() / singleton() / bind() 的决策表。
  • scale.md:面向数百万行的纪律,包括 chunkById/lazyById、keyset 游标、分块 whereIn、队列任务、流式迁移、索引、分页;以及可移植性:原生 SQL 中的数据库前缀、MySQL+PostgreSQL、可选 Elasticsearch、服务器无关代码。
  • extensibility.md:复用优先,包括基类、core()/bouncer()、事件与代理模型作为扩展机制、rule-of-two 提取、保持 BC 的增量变更、迁移文件夹。
  • localization.md:en_US 为规范、33 种语言环境、自然翻译、:placeholder 保留、unopim:translations:check。
  • comments.md:注释的绝对底线、PHPDoc 契约以及实测的核心基线。

使用方式

在编写或修改 UnoPim 代码时参照这些规则。机械性规则(任何正则能捕获的内容)由钩子和 unopim-verify 强制执行;这些文件把篇幅花在需要模型判断的调用上。已安装的检出代码优先级高于这些文件:当 $UNOPIM 中的代码与参考文件不一致时,应遵循检出代码并报告偏差,以便重新生成该技能——这些文档是回退快照,而非事实来源。

注释方面有明确要求:方法体、对象/数组字面量或 Blade 标记内不得有注释,哪怕是一行“为什么”也不行。真正不明显的理由应放在类或方法的 PHPDoc 中,或提交信息里。不得有叙述、分节分隔线或横幅。Laravel 框架内部确实使用叙述性行内注释,但那是框架风格,不是应用/包风格,也不是本代码库的风格。

适用场景

适用于所有 UnoPim 代码的编写与修改,尤其是需要判断力的决策场景,如安全授权、性能优化、大规模数据处理、扩展机制设计、本地化处理与注释规范。

限制

规则集本身是回退快照,不是事实来源;实际检出代码优先。机械性规则不在此展开,由钩子和 unopim-verify 处理。声称任何更改完成前,必须使用 unopim-verify 子技能。