RESTful

目录

PESCMS 从2.0版开始使用了RESTful风格,URL地址更加简洁,控制器的功能布局更加直观。基于RESTful设计,可以让我们节省命名规则和快速定位出错的控制器位置。

GPPD

PESCMS在RESTful风格上,设计了4个状态:GET, POST, PUT, DELETE。简称:GPPD。

GET:用于读取数据,输出数据
POST:用于插入数据
PUT:用于更新数据
DELETE:用于删除数据

如何使用

对于GPPD的使用,本章仅作简单的说明,具体请阅读后面关于《访问控制器》的一章

在没有任何声明的情况下,所有请求均为GET。需要访问GPPD可以通过两种形式:

  • 显式参数

显式参数则以GET参数的形式访问,其关键词为:method(不区分大小写)

http://域名/signup GET请求
http://域名/signup?method=POST POST请求
  • 隐式表单

隐式表单即在表单中存放一个隐藏域,再提交表单时,告知程序本次请求的类型

<form action="signup" method="POST"> <!--此处method仅用作声明表单以POST还是GET的请求-->
    <input type="hidden" name="method" value="PUT"  /> <!--将method作为一个隐藏域,并赋予该值为PUT,即表单提交时,声明为PUT请求-->
</form>

注:在隐式提交时,若您的请求为GET/POST时,您可以直接不填写隐藏域。因为当程序判断$_REQUEST['method']为空时,会从$_SERVER['REQUEST_METHOD']中提起请求类型。

公式:$_REQUEST['method'] ? $_REQUEST['method'] : $_SERVER['REQUEST_METHOD']

设计风格

在日常的开发过程中,请遵照4个状态进行设置访问请求,以节省方法定位的时间和细化流程。下面列出PESCMS的开发命名规则(文档示例假定控制器存放于 /App/Home/ 目录下):

如获取产品列表/信息,编辑产品,搜索产品(发起GET状态),控制器访问地址则为: /Home/Product/index 、/Home/Product/action、 /Home/Product/listAction 或者 /Home/Product/searchAction.   具体实现代码如下:

文件 /App/Home/GET/Product.class.php

<?php
namespace App\Home\GET
class Product extends \Core\Controller\Controller {

    /**
     * index方法可以用于列表,或者其他信息
     */
    public function index(){
        /**
         * 具体列表的实现代码
         */
    }
    
    /**
     * listAction方法可以用于列表,或者其他信息
     */
    public function listAction(){
        /**
         * 具体列表的实现代码
         */
    }
    
    /**
     * action 通常用于 添加或者编辑
     */
    public function action(){
        /**
         * 具体添加/编辑的实现代码
         */
    }
    
    /**
     * searchAction 通常用于搜索功能
     */
    public function searchAction(){
        /**
         * 具体添加/编辑的实现代码
         */
    }
    
}

文件 /App/Home/POST/Product.class.php

提交添加新产品请求(发起POST状态),控制器访问地址则为: /Home/Product/action。具体实现代码如下:

<?php
namespace App\Home\POST
class Product extends \Core\Controller\Controller {

    /**
     * action 添加新产品信息
     */
    public function action(){
        /**
         * 具体添加/编辑的实现代码
         */
    }

}

文件 /App/Home/PUT/Product.class.php

提交更新产品的请求(发起PUT状态),控制器访问地址则为: /Home/Product/action。具体实现代码如下:

<?php
namespace App\Home\PUT
class Product extends \Core\Controller\Controller {

    /**
     * action 更新指定产品信息
     */
    public function action(){
        /**
         * 具体添加/编辑的实现代码
         */
    }

}

文件 /App/Home/DELETE/Product.class.php

提交删除产品的请求(发起DELETE状态),控制器访问地址则为:/Home/Product/action。具体实现代码如下:

<?php
namespace App\Home\DELETE
class Product extends \Core\Controller\Controller {

    /**
     * action 删除指定产品
     */
    public function action(){
        /**
         * 具体添加/编辑的实现代码
         */
    }

}


PESCMS DOC 文档系统
© Copyright 2015-2020. by the PESCMS DOC
耗时0.0197秒