首页 > 主页 > 鬼谷子叔叔
日志:357 评论:13
北京, 西城
【TFWEB】TFWEB视图说明V2.0

视图

介绍

TFWEB的视图遵循RESTFul接口规范

基本视图

结构说明

/**
 * Class TFResource_xxx
 *
 * Methods:
 *
 *     ----------
 *     -- 信息 --
 *     ----------
 *
 *     ---- 公共
 *     full - 详情
 *     fullDetail - 完整详情
 *
 *     ---- 管理
 *
 *     ---- 前端
 *     list - 列表
 *     listHot - 推荐列表
 *
 *     ----------
 *     -- 事件 --
 *     ----------
 *
 *     ---- 公共
 *     filterRowData - 过滤
 *
 *     ---- 管理
 *
 *     ---- 前端
 *     add - 发布日志
 *     mod - 编辑日志
 *     del - 删除日志
 *     refreshHot(file) - 刷新推荐列表
 */
  • 方法名称和属性名称之间不可重复

  • “信息”即属性,“事件”即方法

  • “公共”即后台和前端都会使用到的方法或属性

  • “管理”即后台会使用到的方法或属性

  • “前端”即前台会使用到的方法或属性

标准版示例代码

视图属性名称需要以“load_”开头

视图方法名称需要以“action_”开头

class TFResource_xxx extends TFResource
{
    public function load_full($ID)
    {
     
    }
     
    public function load_fullDetail($ID)
    {
     
    }
     
    public function load_list($opts)
    {
     
    }
     
    public function load_listHot($opts)
    {
     
    }
     
    protected function filterRowData(&$rowData)
    {
     
    }
     
    public function action_add()
    {
     
    }
     
    public function action_mod()
    {
     
    }
     
    public function action_del()
    {
     
    }
     
    public function action_refreshHot()
    {
     
    }
}

高级版示例代码

视图属性不在视图类内实现,则需要在视图名称对应目录下建立属性名称同名程序文件,在程序文件内实现属性读取逻辑

视图方法不在视图类内实现,则需要在视图名称对应目录下建立方法名称同名程序文件,在程序文件内实现方法业务逻辑

视图类代码(xxx.inc.php)

class TFResource_xxx extends TFResource
{
 
}

视图属性程序代码(xxx/full.inc.php)

视图属性请求路径 GET /xxx/{ID}/_full

class TFResource_xxx_full extends TFResource
{
    protected function prepareRowData($ID, $opts)
    {
        return array();
    }
    
    protected function filterRowData(&$rowData)
    {
    
    }
}

视图属性程序代码(xxx/list.inc.php)

视图属性请求路径 GET /xxx/_list

class TFResource_xxx_list extends TFResource
{
    protected function prepareTableData($opts)
    {
        return array();
    }
    
    protected function filterRowData(&$rowData)
    {
    
    }
}

视图属性程序代码(xxx/listHot.inc.php)

视图属性请求路径 GET /xxx/{IDList}/_listHot

class TFResource_xxx_listHot extends TFResource
{
    protected function prepareRowsData($IDs, $opts)
    {
        return array();
    }
    
    protected function filterRowData(&$rowData)
    {
    
    }
}

视图方法程序代码(xxx/action_add.inc.php)

视图方法请求路径 POST /xxx/_add

class TFResource_xxx_add extends TFResource
{
    protected function prepareAction()
    {
        return $this->formResultData('success');
    }
}

表格属性视图示例代码

class TFResource_xxx_list extends TFResource
{
   protected function prepareTableData($opts)
   {
        return array();
   }
   
   protected function filterRowData(&$rowData)
   {
   
   }
}
  • API视图文件存储于 WEB-INF/Controllers/Views/xxx/list.inc.php

  • API视图对象继承自基类 TFResource

  • API请求方式为 GET,路径为 /xxx/_list

详情属性视图示例代码

class TFResource_xxx_full extends TFResource
{
   protected function prepareRowData($ID, $opts)
   {
        return array();
   }
   
   protected function filterRowData(&$rowData)
   {
   
   }
}
  • API视图文件存储于 WEB-INF/Controllers/Views/xxx/full.inc.php

  • API视图对象继承自基类 TFResource

  • API请求方式为 GET,路径为 /xxx/{ID}/_full

多详情属性视图示例代码

class TFResource_xxx_rows extends TFResource
{
   protected function prepareRowsData($IDs, $opts)
   {
        return array();
   }
   
   protected function filterRowData(&$rowData)
   {
   
   }
}
  • API视图文件存储于 WEB-INF/Controllers/Views/xxx/rows.inc.php

  • API视图对象继承自基类 TFResource

  • API请求方式为 GET,路径为 /xxx/{IDList}/_list

方法视图示例代码

class TFResource_xxx_add extends TFResource
{
    protected function prepareAction()
    {
        return $this->formResultData('success');
    }
}
  • API视图文件存储于 WEB-INF/Controllers/Views/xxx/action_add.inc.php

  • API视图对象继承自基类 TFResource

  • API请求方式为 POST,路径为 /xxx/_add

数据格式

表格属性视图

  • 函数返回值结果有要求

{
    "total": "2",
    "data": [
        {
            "postDT": "2018-12-22 15:58:20",
            "id": "1",
            "title": "张三"
        },
        {
            "postDT": "2018-12-22 15:58:38",
            "id": "2",
            "title": "李四"
        }
    ],
    "page": {
        "total": 2,
        "pageSize": 3,
        "pageNum": 1,
        "pageCount": 1,
        "seekBegin": 0,
        "fetchNums": 2
    }
}

详情属性视图

多详情属性视图

方法视图