PHP 怎样将一个面相过程的网站,修改成面相对象

2018-08-13 14:52:19 +08:00
 guoyu4126

网站已经好几年了。 接手的时候非常乱 现在已经整理的差不多。 想问下 用怎样的思路 可以大概齐的整理规范一下。

因为 SEO 问题,网站的很多 url 都不可以修改,目前只能通过 nginx 转发。

2814 次点击
所在节点    PHP
8 条回复
cncqw
2018-08-13 15:25:34 +08:00
随便找个框架重构一下,不要直接在源代码上改
zjsxwc
2018-08-13 16:01:57 +08:00
如果是这种( https://github.com/webERP-team/webERP )古老的 php、html、sql 混编的面相过程代码,

这种代码一个.php 文件就是对应一个路由地址,如果要改成面相对象,

1. 兼容老路由地址

可以写个 Router 碰到请求原先这种老地址时直接 include 对应的地址就行,然后新业务就按你新的面相对象方式写,

2. 复用老代码

这个相对比较麻烦只是体力活,如果要复用,而且是在了解每个老.php 文件功能的情况下(也就是有 Api 接口文档的情况下),你可以写个用于兼容的 Adapter 模拟老代码 $_GET 与$_POST 值来实现代码复用,调用老代码的功能,如果运气好的话 Api 接口文档格式很规范,我们甚至可以从文档生成每个功能的 Service 对象代码;

但是如果碰到没有 Api 接口文档的情况就比较难办了,你要做的是先写老代码的规范文档,然后生成我前面提到的 Service 对象代码。

这样应该能够完成代码完全面向对象化。
chinvo
2018-08-13 16:02:44 +08:00
约等于重写
airdge
2018-08-13 16:17:34 +08:00
即使实现相同功能 也相当于重构了
Light3
2018-08-13 16:18:43 +08:00
重写呗 然后 url 自己记录下 然后写个伪静态 ok
guoyu4126
2018-08-13 17:36:00 +08:00
@zjsxwc 受用。 谢谢
yuanxing008
2018-08-13 17:50:59 +08:00
不用考虑其他了,按照你现在需求就是做个现有功能列表的文档,然后选一个框架直接重写,先实现原有功能,后续维护就很方便了,我司去年还是前年来着,主业务系统就是这样子做的
thesharjah
2018-08-14 11:01:41 +08:00
其实现在大部分 PHP 的框架也是面向过程,不是面向对象的
可能你想的只是把基于 function 的改成基于 object ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/479336

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX