Model 模型层

Model是属于MVC流程中的数据层处理。

  • Model负责处理所有的外部数据源,包括db, Nosql, api等;
  • Model负责处理本地数据源Config,Cache。
  • Model作为业务数据处理的模型层,只需和Controller交换数据,所有接口需要做到无状态模式,即不直接与控制器层的Request, Router, Dispatch, Bootstrap,Controller,Response等产生数据交换。

Model基于数据层Data构建与外部数据源的数据交换。

Model的实例化

Model 通过DI方式自动实例化,并按需注入到控制器。

class MainController extends Controller
{
   /**
   * @autowired 通过自动注解标识可实例化模型
   */
   private UserInfoModel $usermodel;

   /**
   * 派发时,根据模型类型自动注入模型实例。
   */
   public function indexAction(UserInfoModel $usermodel)
   {
   }
   ...
}

Model在profile内的配置项

/**
 * Application的模型层设置
 * 
 * model.namespace 
 *      相对app.namespace下的模型层命名空间  如\App\Model
 *      
 * model.src  模型层的存放目录
 */
$profile['model']['namespace'] = 'Model';
$profile['model']['src'] = 'models/';

具体参考可见 Tiny\MVC/MVC库