Sugarcrm支持 产品指南 糖开发人员糖开发人员指南10.3数据框架 楷模
此版本仅适用于Sugarcloud客户。

楷模

概述

糖中的每个模块都延长了糖模型。该模型由此确定 ,其中包含创建,读/检索,更新和删除数据库中的记录以及糖的任何子类的方法。许多常见的糖模块也使用SugarObjects类,这在下一节中解释。

SugarObject模板

糖对象将逐步延长逐步延长概念,并允许您置于子类 Vardefs. 。这包括继承字段,关系,索引和语言文件。但是,与子类别不同,您不仅限于单个继承。例如,如果每个模块中使用的字段(例如ID,删除或date_modifed)有Sugar对象,则可以让模块继承自基本糖对象和人糖对象。

为了进一步说明这一点,假设基本对象类型具有字段“名称”,具有长度为10,公司对象具有长度20的字段“名称”。如果您继承自基本首先,然后是公司,您的字段将继承公司对象的长度为20.但是,模块级别设置始终覆盖糖对象提供的任何值,因此,如果模块中的字段“名称”已设置为长度60,则字段的长度最终将最终为60。

有六种类型的SugarObject模板:

  • 基本的 :包含所有糖模块所需的基本字段
  • :基于联系人,前景和领导模块
  • 问题 :基于错误和案例模块
  • 公司 :基于帐户模块
  • 文件 :基于文件模块
  • 销售 :基于机会模块

SugarObject界面

除了上面的对象模板外,“可分配”对象模板可以用于包含应包含分配到字段的记录的模块。虽然每个模块都没有使用此功能,但大多数模块允许向用户分配记录。 SugarObject接口允许我们将可分配的属性添加到这些模块。

SugarObject接口和SugarObject模板彼此非常相似,但主要区别是模板具有基本类,您可以在接口时子类。如果查看文件结构,模板包括许多其他文件,包括完整的元数据目录。这主要用于模块构建器。

文件结构

  • ./include/sugarobjects/interfaces.
  • ./include/sugarobjects/templates.

执行

您需要做两件事来利用糖对象:

  1. 将您希望为您的班级扩展的SugarObject类子类:
    class MyClass extends Person
    {
        function MyClass()
        {
            parent::Person();
        }
    }
  2. Add the following line to the end of the  Vardefs. .php. file:
    VardefManager::createVardef('Contacts', 'Contact', array('default', 'assignable', 'team_security', 'person'));
    此代码段告诉VardefManager使用Person类的所有默认字段,可分配的字段,团队安全字段和所有字段创建联系人Vardefs的缓存。

绩效考虑因素

VardefManager将生成的Vardef缓存到运行时加载的单个文件中。如果找不到该文件,Sugar将加载位于模块目录中的Vardefs.php文件。语言文件也是如此。此缓存还包括自定义字段的数据以及丢弃扩展框架的任何Vardef或语言扩展。

缓存文件

  • ./cache/modules/<module>/<object_name>vardefs.php
  • ./cache/modules/<module>/languages/en_us.lang.php.

话题

    Sugdbean类支持往返数据库的所有模型操作。任何与数据库交互的模块都使用SugarBean类,其中包含创建,读/检索,更新和删除数据库(CRUD)中的记录以及获取相关记录的方法。
    位于./data/BeanFactory.php中的BeanFactory类用于加载SugarBean的实例。应在您创建或检索bean对象的任何时间使用此类。它将自动处理bean所需的任何类。

最后修改:2021-01-06 23:28:41