当前位置: 首页 > 后端技术 > PHP

是PHP情怀让我9年没有上线DRYCMS

时间:2023-03-30 02:39:04 PHP

我是DRYCMS的开发者周春。本人2010年7月毕业于华东交通大学,本科专业为工业工程。大学毕业后,我去上海看了世博会,然后留在上海工作。我第一年在ASP工作,然后转到PHP。我接触的第一个PHP框架是openCart。当时我选择这个框架作为一汽-大众的商场。我从这个框架中学习了MVC架构模式。基于自己的爱好,我尝试自己实现了一个MVC框架。经过一番努力,终于做出来了,不过只适合小项目。后来接触了ThinkPHP、CodeIgniter、Laravel、Symfony、Yaf、swoole等PHP框架,并用相应的框架做过完整的项目。ThinkPHP和CodeIgniter是规范良好的MVC框架,而Laravel和Symfony是高度封装的MVC框架。我是从Laravel框架开始接触PHP的包管理工具composer的。Yaf和swoole都是基于C语言编写的扩展库框架,而swoole彻底改变了我的编程思维,因为它常驻内存,所以像$_GET这样的全局变量不能直接使用。我在2011年考虑过构建自己的CMS,我花了很多时间来考虑这个名字。有一个编程原则叫做DRY(Don'tRepeatYourself)。我觉得这个名字很好。我想做的是让别人不要重复写同样的代码,所以注册了域名drycms.com。2012年4月30日,本来打算2012年国庆发布DRYCMS,结果2014年1月1日发布,为什么我记得时间这么清楚?因为大家可以在微博上搜索DRYCMS这个词来查看我当时发的微博。2014年才接触到Bootstrap这样的前端界面框架,所以DRYCMS之前的版本使用的是HTML原生组件,但其自动化的思路在当时还是相当前卫的。我用它连接了大概20个List,开发很快,后来因为工作原因停止了开发。2016年开始接触swoole框架,同时也接触到了go语言,打开了架构师的大门。2017年,我使用swoole为哈工大航天研究院的一个项目提供WebSocket长连接通信服务。他们有数以万计的设备需要实时连接到主控,等待命令。这是对swoole的一个很好的熟悉。2018年在趣头条工作的时候用过鸟哥的Yaf框架,后来转用Go语言开发。2019年2月,我离开上海到贵阳工作。这里没有加班。我早上09:00上班,下午17:30下班。空闲时间充足,于是又开始开发DRYCMS。我直接推翻了之前的代码,完全重写了。时隔一年多,终于在2020年5月1日重新发布了DRYCMS1.0.0,经过一个月的.1版本迭代后,又在2020年6月14日发布了DRYCMS1.0。一路走来,DRYCMS能走到今天,着实不易。以下是DRYCMS在改写时面临的一些选型问题:1、没有前后端分离。因为DRYCMS是自己开发的,如果前后端分离的话,会花费更多的时间。2.没有选择基于vue或者react的前端框架,而是选择了layui。个人比较喜欢layui的小清新风格。引入一个css和一个js就够了。很方便。比较喜欢后端和前端的vue,react虽然不错,但是还没熟练。3、为什么选择swoole?2019年2月的这个时候,我已经工作8年多了。如果我想推出一个开源作品,我必须想出一个像样的作品。因此,对于技术更好的PHP开发者,我选择swoole。4.为什么用PHP开发而不用go语言?虽然熟悉go语言,但是没有php工作年限长,所以积累的高质量代码很少。考虑到php可以快速开发DRYCMS,也有可能在稳定后发布go语言版本,所以先用PHP实现。5、为什么要做后台自动化?后台的东西无非就是增删改查。我通常会选择一些项目。不想每天都写同样的代码,后台处理文件的相关操作会很麻烦。我已经在一个函数上工作了一个多月。后面再说说DRYCMS的计划:DRYCMS目前只推出PHP版本,Go语言版本稍后推出,前后端分离。前端框架将使用elementadmin或antd之一。DRYCMS不会停止更新,好的想法会先用PHP实现。DRYCMS计划推出生成其他编程语言代码的功能,因为该框架有元数据,可玩性很强。DRYCMS的go语言版本将是一个可以直连云端的多租户系统。用户无需自己部署,直接使用云端即可。它将为企业用户开发。最后,如果你不喜欢PHP了,可以试试我用go语言搭建的单体框架。后面我会开源基于go语言的微服务框架。