前言
这本教程适合谁?
适合所有对PHP/MYSQL有一定基础,对Hyperf感兴趣且迫切想要完成一个简单项目的读者。
为什么写这套教程?
写下这句话的时候,这本教程未来是否能如期完成的目标还很渺茫。但愿我能写完吧,祝我好运。:)
言归正传,其实是有两个原因促使我想完成这本教程。
一、我想给自己写一套给自己用的生活管理系统
我接触PHP大概有10年出头了,PHP也是我的第一门入门语言,我对此有非常深厚的感情,但是因为工作原因,我现在的主力开发语言并非是PHP,而是JavaScript。不过这都不重要,这并不影响我一直以来想给自己写一套类似个人生活管理的系统的想法。
因为我也是个菜鸡,所以我前前后后倒腾过ThinkPHP3.2,ThinkPHP5.0,Laravel5.4,Laravel6.0这些框架。(刚才去看了一下,竟然已经出ThinkPHP6.0了)
从我个人的角度说说自己的感觉吧,首先是ThinkPHP,不知道为啥,总是莫名其妙就觉得low的很,也不知道是不是因为早期的D/M等等这些单字符的大写助手方法给我留下的印象不太好,反正一直不太喜欢,但是因为我太辣鸡了,想换Laravel而感觉无从下手。有一次我甚至还发现他的MODEL在第三位版本号更新时居然发生了行为不统一的情况,这简直惊呆了我,然后就毫不犹豫的转Laravel了。
因为一直以来觉得Laravel是个很高级的框架,所以抱着敬畏的心态学习了Laravel,最后发现这东西写的确实是好,但是就是感觉有些复杂了,还有一个情况就是感觉用来做API不太合适,总感觉他满篇都是让你做传统Web开发的东西。虽然说他后来弄出了一个Lumen,我也简单体验了下,发现这东西和官网上说的并不一样。官网上说他很轻量,没错,的确很轻量,但是轻量的有点啥也不剩的感觉了。你想用点啥东西呢,那就还得原模原样的给装回来。那我都装回来了,我为啥不直接用Laravel?
直到最后,在上班摸鱼的时候偶然听群友吹牛逼提到了Hyperf。
Hyperf的这些关键词“协程”、“Swool”、“单例”、“并发”......,每一个都充满了高级感啊!再一看文档,感觉这就是协程版的Laravel嘛!于是我毫不犹豫的决定我这套系统要用Hyperf来实现了,这简直装逼满分!
二、我知道你们看官方的文档非常的吃力
别问我我是怎么知道的哈哈哈。
说实话啊,我一直觉得Hyperf的官方文档写的太辣鸡了(大佬别喷我,我是站在小白的角度)。我就这么说吧,那文档根本不是写给入门者看的,入门者硬着头皮也很难看懂。所以这也是我写这本教程的第二个重要原因——我想写一个小白也能看得懂的教程。
所以我打算从现在开始边写边整理记录,把开发过程中遇到的问题和注意事项写进本教程。
这本教程都有什么内容?
很显然,因为我自己水平有限,所以只能用一些通俗易懂的方式来告诉你如何从零开始搭建一个基于Hyperf2.2的API服务。这其中包括数据迁移(建表)的创建和使用,模型Model的创建和使用,以及API服务中很常见的JWT(JSON Web Token)的配置和使用方法,短信和邮件的发送,定时任务的创建和使用等等。对于一个简单的API服务来说,上面提到的这些东西就可以满足基本的需求了。
对了,最后说一点,这本教程和其他教程的最大不同点在于他不是零散的记录一些Bug的处理方法,也不是试图通过几篇文章就直接完成一个基础项目的搭建,而是带领读者一步步的了解并思考,最后完成自己的项目。