您的位置 首页 php

开发自己的接口框架(slim框架改造篇)

引子

关于slim框架,据说是最快的微型 RESTful 框架,快不快不知道,但是确实特别轻量,只有不足1M大小;而且基于restful的路由功能真得特别好用,跟laraval的路由是一样的。如果只是接口开发,个人认为这个是首选。它还有个优点,就是拓展性强。这也是能写这篇文章的原因。

需求

既然要对slim框架进行拓展,当然是现有的东西不能满足需求了。主要有哪些呢?

  1. 没有数据库操作类包
    本来这个框架就是用 composer 把各种开源的优秀的包拼在一起搭建的,可是却独没有数据库操作包。总不能每次使用,都连接一次,用原生语句开发吧。
  2. 没有公共方法文件
    公共方法文件肯定是有,只是是封装好的放在底层。还需要一个自定义的公共方法文件。
  3. 没有独立的配置文件
    跟上面一个道理,数据库连接也好,其它appid调用也好,都需要一个单独的配置文件。并且能够直接引用。
  4. 独立的控制器和模型
    如果接口较多,就要涉及到分组拆分。需要单独的一个目录来存放控制器或模型,并且能够灵活引用。

思路

  1. 公共方法
    公共方法的引用比较容易,单独建一个文件,并在项目启动页面提前引入就好了,没啥好方法。值得说的是,为了结构清晰,首先要独立几个目录,存放公共方法,配置文件,控制器,模型。公共方法和配置文件一般都只有一个,可以合放在一个目录下。暂且,我把配置文件和公共方法起名为 config .php,common。php放在lib目录下,横型和控制器放在/app下的controller和model目录。
  2. 数据库类包
    这类包应该有很多,暂且我使用medoo。直接在根目录下的composer.json里加上一行,再执行composer update就好了。使用时页面第一行加上use Medoo\Medoo;.

3. 配置文件
配置文件与公共方法可以做成一样,但是加在什么位置呢,如果加在使用时的页面,可能会重复引用;如果加在启动页面就有些浪费,而且配置里的变量名称可能与其它页面新定义的变量冲突。所以考虑做成一个静态类,在类里面引入配置文件。并且设置一个调用方法get(key).这样在调用的时候,直接写成`Config::get(key)`就可以了。

4. 数据库连接
前面说的数据库类包已经有了,但是怎么连接呢。官方的文档是这样的。

显然不现实嘛,每次数据库操作写这么一大串吗。第一种解决方案是在公共方法里写一个,mysql_connect()方法,但是这样好像和medoo的类包就没啥关系了。我的想法是再建一个medoo的子类,并且在子类里面对参数进行初始化。这样也能直接使用封装好的配置文件。

  1. 控制器及模型的封装
    配置文件,数据库类,以及控制器,模型都有了。目录拆分也Ok了。现在需要对它们再进行一个封装调用,也就是自动加载。在使用到的时候,只要new一下就能直接使用。所以呢,我的想法是把配置类,medoo子类都写成模型的形式,包括开发过程中封装的其它模型都放在一个目录下,并在composer里的自动加载配置上。关于自动加载的配置步骤可以参考我的另一篇文章《解析composer自动加载机制》。

尾声

由于数据库的操作较多,想要更方便的话可以在medoo子类里把各种快捷方法都重写成 静态方法 ,这样就不用new了。封装好后的代码地址放在文章末尾。

github 地址:

文章来源:智云一二三科技

文章标题:开发自己的接口框架(slim框架改造篇)

文章地址:https://www.zhihuclub.com/153006.shtml

关于作者: 智云科技

热门文章

网站地图