在PESCMS中,模型的定位为公用方法。即将业务逻辑中经常需要用到的方法放置于模型中,那么控制器、扩展库或者视图层可以快速调用方法得到需要的数据。

  • PESCMS2.5起,模型常用的方法与控制器一致。但设置视图类的方法,在模型中是禁止被调用的。

  • PESCMS2.5以前的程序部分适用于本文档,主要区别为方法调用的参数,返回数据形式存在差异。

第一个模型

模型的命名

在创建第一个模型前,需要理解好模型的命名。模型是为了将重复的业务代码抽离封装,实现第三方的调用。他们的命名应该依据实际业务所决定。如:数据库表、业务操作名称。下面来点示例说明,更加直观:

  • 有一个模型方法是用于操作用户信息的(存放用户信息表为:pes_user),那么该模型命名为:User.class.php

  • PESCMS的智能表单不依赖于单表,并且它经常涉及处理表单数据类型,因此它的模型命名为:Content.class.php

好的命名,可以让使用者对未知的模型有一个一目了然的作用,这就是PESCMS官方推荐的模型命名规则。

创建模型

模型存放位于项目根目录的Model目录下。现在我们创建一个用户模型 Model/User.class.php,并写入如下代码:

  1. <?php
  2.  
  3. namespace Model;
  4.  
  5. class User extends \Core\Model\Model {
  6.  
  7. /**
  8. * 依据用户ID,快速查找用户
  9. * @param type $id 用户的id
  10. * @return type
  11. */
  12. public static function getUser($id){
  13.  
  14. ...此处省略业务代码...
  15.  
  16. }
  17.  
  18. }

注:所有模型的方法必须使用static关键词声明为静态方法。声明了静态方法后,我们可以不实例化对象即可调用模型。

模型创建完成后,我们在App/Home/GET/User.class.php的控制器中调用该模型方法getUser();

  1. <?php
  2. ...此处省略业务代码...
  3. public function view(){
  4. $user = \Model\User::getUser($_GET['id']);
  5. }
  6. ...此处省略业务代码...

至此,我们掌握了模型的创建和模型的调用,相信这些难不倒大家。