SuperAPI AI 工具集

craftcms

编程与开发

查看项目

更新于 10-16 00:30

技能介绍

用途:该技能面向 Craft CMS 5 的扩展开发,即构建插件、模块、自定义元素类型、字段类型与后端集成。站点/平台开发(内容建模、区块、条目类型、Twig 模板、插件选择)由 craft-site 技能负责。

主要能力:覆盖元素与元素查询、服务、模型、记录、控制器、迁移、字段、事件、队列任务、GraphQL、缓存、权限、会话与认证、CP 组件与界面模式、部署与质量工具等。资料按任务列出应阅读的参考文件,例如构建自定义元素类型读 elements.md、element-index.md、fields.md、migrations.md、cp.md;添加 webhook 端点读 controllers.md 与 events.md;注册自定义字段类型读 fields.md 与 events.md;修复 PHPStan 错误读 quality.md。

使用方式:技能触发时需同时加载配套技能:craft-php-guidelines(PHP 代码规范)、ddev(所有命令通过 DDEV 运行)、craft-garnish(CP JavaScript 与资源包)、craft-pest(测试)、craft-cloud(项目托管于 Craft Cloud 时)。文档链接包括扩展指南 https://craftcms.com/docs/5.x/extend/、类参考 https://docs.craftcms.com/api/v5/、生成器 https://craftcms.com/docs/5.x/extend/generator.html,可用 WebFetch 查阅具体页面。

适用场景:插件与模块开发、自定义元素与字段、CP 界面与组件、迁移、事件、测试、部署与 CI 等。

限制与陷阱:资料列出多项跨领域注意事项,如 beforePrepare() 中应使用 addSelect();队列任务在主站点上下文运行,跨站点查询需 ->site('*');getConfig() 不应包含 id,项目配置使用 UID;业务逻辑应放在服务而非模型或控制器;模块需手动注册模板根、翻译与控制器命名空间;元素/查询用 DateTimeHelper,服务用 Carbon,不可混用;CP URL 不应硬编码 /admin,应使用 UrlHelper::cpUrl() 或 Twig 的 cpUrl();拆分设置页不可直接把 $request->getBodyParams() 传给 savePluginSettings();路由或查询参数不可命名为 token;插件 templates/ 目录中非下划线前缀模板会绕过控制器直接可路由。具体实现细节需查阅对应参考文件。