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

这两年我写PHP业务代码的方式是如何演变的

时间:2023-03-29 21:13:00 PHP

大家一直很疑惑。以下是我从开始PHP开发以来一直在改变的代码组织方式。前期:所有的代码都在一个大脑里。controller以前是简单的理解MVC。中间阶段:业务代码抽象到模型层。模型开始思考模型层是否应该做一些事情。后期:业务代码controller,model层只写了db的curd方法复杂的业务代码使得controller体积太大,维护困难。现在吸取之前的编码经验,我现在的编码方式改变如下:更合理的分层controller,将资源业务代码暴露给逻辑层model层,只写入dbcurd方法的把握,一切灵活,不总是这样,认为逻辑够简单还是“业务代码controller,model层只写db的curd方法”。依赖注入,懒加载,前置中间件依赖注入容器很重要,加上懒加载,代码减少,依赖解耦,性能提升容器,可以参考我之前的简单实现http://easy-php.tigerb。cn/#/?...前端中间件注入我们依赖的类。我实现了一个简单的前端中间件。例子在controller之前挂载了一个gatewayhttp://easy-php.tigerb.cn/#/?...组件化代码首先,我们需要使用composer对我们的代码进行拆分和组件化。业务中一个简单的composerrequire就可以复用我们的业务代码。但有一个问题。如果使用https://packagist.org,需要开源代码。和业务无关的工具还好,开源还是个好东西,但是和业务相关的比较敏感的组件就出问题了,所以我们需要搭建一个私有的packagist。私有packagist示例:http://packagist.tigerb.cn/。具体搭建步骤见文末。总结现在让我接手一个项目,我会从以下几个方面来整理我的php代码:Composer组件代码,依赖开源或者私有的packagist前置中间件懒加载方式依赖注入composerrequire组件controller优雅暴露资源参数校验工具class使用try...catch...finally...响应尽量符合restful思想,比如错误码:400、404、500...业务代码到逻辑层(不一定)复杂的业务代码优先建模可以重写。建模可以组织我们的代码,使用一些设计模式。建模可以参考我的这篇PHPer月度工作总结Observer&DecoratorMode。模型层只写db。curd方法是不可动摇的原理的结论还有很多不足之处。我只是在这里分享我的想法。每个人都可以向好的人学习。不好的地方希望大家指正。THX~附录Satis构建私有packagist进程,安装步骤如下:step1:composercreate-projectcomposer/satis:dev-master--keep-vcs&&cdsatisfactionstep2:touchsatis.json的内容satis.json文件如下":"http://github.com/tigerb/easy-mipush"},{"type":"vcs","url":"http://github.com/easy-framework/easy-router"}],"require-all":true}step3:phpbin/satisbuild./satis.json<你的webservser项目目录,比如我的路径/mnt/www>step4:配置nginx服务器配置,如何使用重启nginx后呢?只需配置composer.json并添加一个新的存储库地址。具体示例配置如下:{"name":"tigerb/test","authors":[{"name":"TIGERB","email":"tigerbcode@gmail.com"}],"repositories":[{"type":"composer","url":"http://packagist.tigerb.cn"}],"config":{"secure-http":false},"require":{"tigerb/easy-mipush":"^0.1.0"}}扫描下方二维码关注我的技术公众号,及时为大家推送我的原创技术分享