一、数据库操作

目前封装了两种数据库,“MongoDB”和“MySQL”,用到了一次接口“IDatabase.php”。

namespace library\db;
interface IDatabase {
    public function connect($database);
}

为了方便增删改查,给两种数据库封装了统一的方法,query、getCount、add、getRowById等。

将demo用的数据库文件放在了“db”内。

 

二、辅助函数、常量与字典

1)辅助函数

这个是参考了CI后加进来的,有时候老是初始化某个类再调用很不方便,直接是函数的话,引用就快捷。

目前就三个,文件、正则和域名的操作,里面也没几个方法,可扩展。

 

2)常量与字典

常量的应用,例如订单的状态,可以用数字1,2或3等,而如果直接赋这种数字,不容易理解,并且万一修改了一个状态意义。

那就有潜在危险了,可能赋值比较分散,不能完全修改过来。

但如果作为一个变量预先设置好,即使改了也没关系,只是层引用关系。

class ConstEnum {
    const Status_Normal = 1;
    const Status_Delete = 0;
    //字典
    public static $Enum_Select = [
        ['1'=>'正常'],
        ['0'=>'错误']
    ];
}

而字典的话,例如订单状态的下拉框,直接引用这个字典再输出,比每次都重新设置要快捷许多。

 

三、工具类

框架中会有许多工具类,例如分页、Session、过滤、Curl等。我这边就简单的封装了几个而已。

其中“Weixin”开头的两个文件是专门用于微信开发的,曾经写过四篇文章,专门讲《微信开发》。

 

四、控制器

1)类库

core/Controller.php”中做的是核心工作,渲染模版、返回JSON数据等。

controller/Web.php”是某个业务中的通用控制器,继承自“Controller.php”中。

 

2)项目

app中可以包含多个项目,例如下面的“admin”和“weixin”,包含多个项目可以复用“library”中的代码。

在“weixin”文件夹中包含了四个文件夹。

1. “conf”是配置文件,前面说过的,三种环境有三种配置。

2. “controllers”中是控制器,命名我做了规定,一定要“Controller”结尾。

3. “layouts”是通用模版,例如head、footer等部分,很多页面可以复用。

4. “views”中就是视图了。

 

除了这些,还有“third”第三方库的引入,“service”通用业务逻辑的封装。

如果要封装自己的业务层,其实就是新加一个文件夹而已。

以上这些也只是按照我的思路做的封装,都是对第一篇文章《粗暴的实现》的扩展。

 

框架下载:

https://github.com/pwstrick/PrimusPHP

 

 posted on 2016-08-23 09:59  咖啡机(K.F.J)  阅读(997)  评论(2编辑  收藏  举报