SuperAPI AI 工具集

espocrm-development

编程与开发

查看项目

更新于 10-15 17:27

技能介绍

用途:在开发 EspoCRM 自定义模块、实体、关系、钩子、服务、API 端点或集成时使用;尤其适用于使用 ORM、实现业务逻辑、创建钩子、修改元数据、自定义字段类型、用 SelectBuilder 构建复杂查询、自定义 API 动作和打包扩展。

核心原则:EspoCRM 是元数据驱动平台,实体定义、布局、字段配置存放在 JSON 中;业务逻辑放在 Service 类,数据访问统一通过 ORM EntityManager,采用构造函数依赖注入,不传递 Container;钩子只用于生命周期事件,不写业务逻辑。

主要能力与用法:使用 ext-template,在 src/ 目录(EspoCRM 7.4+)开发,元数据位于 custom/Espo/Modules/{ModuleName}/Resources/metadata/。数据访问示例:构造函数注入 private EntityManager $entityManager,用 $this->entityManager->getEntityById('Account', $id) 取实体,或用 getRDBRepository('Contact')->where([...])->find() 查询。服务继承 Espo\Services\Record,在其中实现业务逻辑并保存实体。钩子实现接口如 BeforeSave,共 7 种:BeforeSave、AfterSave、BeforeRemove、AfterRemove、AfterRelate、AfterUnrelate、AfterMassRelate,务必使用接口而非基类。修改元数据后执行 bin/command rebuild 重建缓存。

适用场景:自定义实体与关系、API 动作、字段类型、定时任务、邮件、PDF、ACL、工作流与集成、扩展打包分发。

限制与要求:须使用 PHP 7.4+ 类型声明,所有方法标注类型;错误处理抛异常,不用布尔返回值;禁止直接 PDO 查询、禁止绕过 EntityManager、禁止传递 Container;修改元数据后必须重建缓存,声称完成前须重建缓存并测试。资料未提供具体收费、价格或平台依赖信息。