从零设计一个属于自己的框架!章

从零设计一个属于自己的框架!章

开发目标及准备说明

这一篇不包含任何技术代码,如需要直接开始请阅读第(一)章。

前言

毕业三年,成为架构师!

这是我毕业时的梦想,结果没有实现。

现在重拾初心,从零设计一个属于自己的框架!

目标

按照目前市面上的发展来看3D交通工具

swoole 毫无疑问是目前 PHP 的天花板,

而自己在工作的时候做的都是流水线,几乎没机会接触到 swoole。

于是趁这个机会也学习一下。

这次设计的框架以开发博客系统作为案例,

我们不考虑它的适用性,正如标题所写的一样,

这是属于自己的框架,

php框架开发视频教程_php游戏开发框架_php框架开发视频教程下载

而不是 Laravel 那样可以单独发布的 composer 包。

所以最终我们会完成一个单体博客应用,

如果你要把自己的框架做成发布到全网让别人使用你的框架,

可以了解一下 composer 的扩展包是怎么制作的。

只要这套框架做完了,

你自己改造成可以用 composer require xxx/xxx 那样引入的也完全没问题。

准备工作PHP 环境

本人使用的是 docker 环境,

window 系统也可以用 wamp、xampp 等等,

只要搭好 PHP 环境并且安装了 swoole 扩展就行了。

windows 系统安装 swoole 扩展比较麻烦,

如果你不会安装php游戏开发框架,可以在 windows 系统安装 docker,

php游戏开发框架_php框架开发视频教程_php框架开发视频教程下载

然后再在 docker 里面安装 php 环境。

Swoole 扩展

Swoole 官方网站:

swoole 其实是一个 php 扩展并不是框架,它跟 yaf 一样是基于内存常驻的。

swoole 依然还在保持着更新,yaf 却 N 年没更新了。

所以如果要学的话,强烈推荐 swoole 而不是 yaf。

Nginx

因为我们要做的是一个博客系统的单体应用。

Swoole 对静态文件的处理能力比较弱,

所以我们的目标是 swoole 做服务器,

静态文件交给 nginx 处理,

php 请求转发给 swoole。

单体应用是相对于微服务来说的,通俗的讲即整个项目就只有一个文件夹,而微服务则是把各个模块拆出来,比如用户模块、订单模块诸如此类2d游戏素材,还可以把全站的 api 接口拆分出来当成一个项目(前后端分离)

MySQL

免费的数据库,除了这个还有 Mango,

但是我没用过,根据你个人兴趣选择即可。

Redis

免费的高性能包括键值对、哈希、集合列表等等处理器。

用来做缓存和队列任务,文章排行榜等等。

Composer

php 的包管理工具,现在的项目还是纯手撸那也太 lower 了。

我们在开发框架的时候,会像 Laravel 那样依赖一些第三方的包。

感觉好像有点作弊?

用 composer 就跟直接拿别人开发好的一样,

php框架开发视频教程下载_php框架开发视频教程_php游戏开发框架

不是说好手撸框架么?

不用担心,开发框架最核心的是编程思想,

具体怎么实现,我相信大家看着源码也能模仿出来。

如果你愿意从写 MySQL 数据连接开始,那也没问题!

如果你要从最底层的代码开始写,

那么我建议你将数据库处理、上传组件、缓存处理、队列任务等等,

把这些都做成单独的 composer 包,

然后再在框架里引入自己写的 composer 组件包,

像拼积木一样,看起来很酷对吧!

这样一个高度定制化的框架就实现了。

我还真的试过这么做,但是做一个 composer 包就放弃了……

因为……工作量增加了好几倍。

php游戏开发框架_php框架开发视频教程下载_php框架开发视频教程

很不现实,你做的越细php游戏开发框架,工作量就越大,

而我们自己一个人维护不过来,

所以不推荐一开始就有那么大的野心,

本篇文章要完成的目标仅仅只是一个单体博客应用而已,

甚至都不会把框架单独拆分出来(业务逻辑代码也混合在框架里)。

核心内容是开发框架的编程思想,而不是具体的实现。

IDE

用 PHPStorm 即可,当然也可以用微软的 VScode。

最终目标

在我们学习 PHP 的时候,

第一个开发的项目是什么?

我猜大部分人都是博客系统!

那么,三年前的我和三年后的我,

制作相同的一套系统会有什么差别呢?

用毕生(三年)的功力,来开发这套博客系统吧!

文章来源:https://huotuyouxi.com/2021/02/04/my-swoole-framework-0/