slim引入其他php_开发自己的接口框架(slim框架改造篇)

引子

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

ps:先声明一点,本篇文章对slim的所有描述都是特指V4版本。

需求

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

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

思路

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


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

12c3fa23f9071bea51fdb013413bac29.png


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

0cb7081db731d328f0b705672566afc7.png


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

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

尾声

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

github地址:https://github.com/zuoshoupai/simphp

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值