💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 最佳实践 * * * * * 模型是代表业务数据、规则和逻辑的中心地方,通常在很多地方重用, 在一个设计良好的应用中, 模型通常比控制器代码多。 归纳起来,模型 * 可包含属性来展示业务数据; * 可包含验证规则确保数据有效和完整; * 可包含方法实现业务逻辑; * 不应直接访问请求,session和其他环境数据, 这些数据应该由控制器传入到模型; * 应避免嵌入HTML或其他展示代码,这些代码最好在 视图中处理; * 单个模型中避免太多的 场景 在开发大型复杂系统时应经常考虑最后一条建议, 在这些系统中,模型会很大并在很多地方使用,因此会包含需要规则集和业务逻辑, 最后维护这些模型代码成为一个噩梦, 因为一个简单修改会影响好多地方, 为确保模型好维护,最好使用以下策略: 定义可被多个 应用主体 或 模块 共享的模型基类集合。 这些模型类应包含通用的最小规则集合和逻辑。 在每个使用模型的 应用主体 或 模块中, 通过继承对应的模型基类来定义具体的模型类, 具体模型类包含应用主体或模块指定的规则和逻辑。 例如,在高级应用模板, 你可以定义一个模型基类`common\models\Post`, 然后在前台应用中,定义并使用一个继承`common\models\Post`的具体模型类`frontend\models\Post`, 在后台应用中可以类似地定义backend\models\Post。 通过这种策略,你清楚`frontend\models\Post`只对应前台应用, 如果你修改它,就无需担忧修改会影响后台应用。