PHP旧系统基于命名空间重构经验

简介: 命名空间其实只是一个形式,最终目的是重构代码,但这个过程想要一蹴而就是不可能的。一开始给了一个伪命题:基于ThinkPHP的重构(不要问为什么)。经过一段的实践,发现这是一个大错特错的思维方式,其中遇到的坑在此略过不表。

命名空间其实只是一个形式,最终目的是重构代码,但这个过程想要一蹴而就是不可能的。

一开始给了一个伪命题:基于ThinkPHP的重构(不要问为什么)。经过一段的实践,发现这是一个大错特错的思维方式,其中遇到的坑在此略过不表。

首先,不要想着全盘基于命名空间重写,而应该是基于局部的。

最终思考后的结果,是以Model层基于命名空间改造为目标,这样可以在新的框架下重用系统中Model层资源。因为理论上Model层只与数据打交道,耦合度最低。

但改造过程也发现一些问题,原来的Model层耦合了业务逻辑,甚至与session、cache等系统环境挂钩,不是纯粹的Db操作,而是含有很多业务代码,这意味着这一部分的代码在初步改造完成后,是无法在新框架中重用的。

这些存在问题的地方,也间接证明了一些基础编程思想的正确性:OOP的本质是代码重用;PSR系列规范对于提高代码重用度的直接作用;代码分层合理性对于代码维护性的影响等;全局变量对代码重用性的极度负面影响。

什么是逐步重构?

逐步重构的基本原则是兼容,不是推翻重来,只要事情变成了推到重来,就不是重构,简直就是重写了。在创业小团队,推到重写,are u kidding me?

兼容是重构的起点和过程,重用是结果;新的功能可以基于新的框架开发,但同时可以在平台内部重用已有功能代码,所以这是一个过程。

目录
相关文章
|
2月前
|
存储 安全 PHP
PHP中实现简单身份验证系统的步骤
【8月更文挑战第31天】在构建Web应用程序时,确保用户身份的合法性和数据的安全性是至关重要的。本文将引导你通过使用PHP语言来实现一个简单的身份验证系统,从数据库设计到前端登录界面的创建,再到后端逻辑的处理,我们将一步步地走过整个流程。无论你是PHP新手还是希望复习相关知识,这篇文章都将为你提供清晰的指导和实用的代码示例。
|
2月前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
40 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
6天前
|
PHP Apache 数据库
PHP做二次开发:本机安装ThinkCMF系统
文章详细说明了如何在本地环境中从零开始安装并配置ThinkCMF系统,包括环境准备、源代码获取、虚拟域名设置及数据库配置等步骤。
|
2月前
|
安全 BI PHP
php前后端分离,仓储模式r的医院不良事件上报系统源码
此医院安全不良事件管理系统采用前后端分离架构(PHP+Laravel8+Vue2+Element),实现事件上报至解决的全流程管理。系统支持结构化上报、数据自动引用、智能流程及预警,配备质控分析工具生成各类报表。通过PDCA闭环管理,确保事件得到有效处置并预防再发,同时提供便捷上报通道,优化上报效率。
php前后端分离,仓储模式r的医院不良事件上报系统源码
|
2月前
|
SQL 安全 API
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
62 4
|
2月前
|
前端开发 测试技术 API
品读:PHP搭建cn2you逆向海淘代购系统攻略
搭建CN2YOU淘宝代购集运系统需经过细致规划与实施。首先,通过市场调研明确目标市场和服务定位;随后规划核心功能与技术选型,确保系统可扩展性。集成电商平台API实现商品信息同步,并构建安全的用户注册、登录体系。实现购物车、订单管理和支付接口集成,支持多种支付方式。整合物流合作伙伴,提供物流跟踪服务。优化用户体验,支持多语言,并通过社交媒体营销提升品牌曝光。最后,进行系统测试与维护,确保稳定运行。
|
2月前
|
前端开发 关系型数据库 MySQL
最新黑名单查询录入系统PHP网站源码
最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很好的预防数据库注入,当然如果你想要测试这个防注入的你也可以尝试一下 PHP版本70+ 数据库Mysql 5.6 上传程序访问 http://你的域名/install 安装
60 0
|
2月前
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
134 0
|
3月前
|
小程序 PHP
全新UI自助图文打印系统小程序源码 PHP后端 附教程
全新UI自助图文打印系统小程序源码 PHP后端 附教程
222 2
|
3月前
|
移动开发 前端开发 应用服务中间件
挂售转卖竞拍商城系统源码/竞拍系统/转拍闪拍系统/后端PHP+前端UNiapp源码
挂售转卖竞拍商城系统源码/竞拍系统/转拍闪拍系统/后端PHP+前端UNiapp源码 亲测可用
87 1
下一篇
无影云桌面