创建控制器

目录

第一个控制器

PESCMS的控制器是依据配置文件中的组和RESTful请求类型进行创建,下面给出一个示例加以说明:

配置文件中有这么一行信息:

'APP_GROUP_LIST' => 'Admin,Home',

上面的表示当前的程序有两个组别控制器。即:

App/Admin

App/Home

清楚这一点后,现在我们创建一个适用于GET请求的控制器。他的访问地址为: http://域名/index.php/Home/Index/index 。在浏览器中访问并输出:Hello World!

在App/Home创建目录GET,并在GET目录下创建一个名为 Index.class.php的文件。

完整的文件目录:App/Home/GET/Index.class.php

控制器文件创建完毕后,我们用编辑器打开,并在里面填写如下代码并保存:

<?php

namespace App\Home\GET;// 必须声明命名空间,否则程序将会报错

//控制器必须继承\Core\Controller\Controller
class Index extends \Core\Controller\Controller {

    public function index() {
        echo 'Hello World';
    }

}

现在可以访问一下控制器,检阅程序是否能够定位到我们第一个控制器。

注:控制器的名称必须和文件名称一致。如:Index,文件必须为命名为Index.class.php 。Product  必须命名为 Product.class.php 反之亦然

公用控制器

在实际的开发过程,所有控制器都不会选择直接继承PESCMS的控制器的。它们可能需要做一些帐号判断,利用构造函数执行公用方法。这个时候,我们需要创建一个基于组别的公用控制器。在PESCMS中,每一个组的控制器目录下,都有一个名为Common.class.php的公用控制器。它的作用就是负责继承PESCMS的核心控制和实现自身的公用方法。

创建方法和用法非常简单,我们先来创建一个公用的控制器,位于App/Home目录下:

<?php

namespace App\Home;

//设置为抽象类,是为了防止该控制器被人访问
abstract class Common extends \Core\Controller\Controller {
    ...省略业务逻辑...
}

创建成功后,我们现在有一个订单的控制器,位于App/Home/GET目录下,他将继承公用控制器。

<?php

namespace App\Home\GET;

//我们直接继承公用控制器则可
class Order extends \App\Home\Common {
    ...省略业务逻辑...
}

现在我们既可以使用PESCMS的核心控制器提供的方法,也可以使用自己编写在公用控制器的方法。

注:上述的仅仅为一个示例用法,更多的用法可以参考《设计模式》之类的书本。

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