PHP 怎样将一个面相过程的网站,修改成面相对象 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
guoyu4126
V2EX    PHP

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

  •  
  •   guoyu4126 2018-08-13 14:52:19 +08:00 3327 次点击
    这是一个创建于 2695 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    8 条回复    2018-08-14 11:01:41 +08:00
    cncqw
        1
    cncqw  
       2018-08-13 15:25:34 +08:00
    随便找个框架重构一下,不要直接在源代码上改
    zjsxwc
        2
    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
        3
    chinvo  
       2018-08-13 16:02:44 +08:00
    约等于重写
    airdge
        4
    airdge  
       2018-08-13 16:17:34 +08:00
    即使实现相同功能 也相当于重构了
    Light3
        5
    Light3  
       2018-08-13 16:18:43 +08:00
    重写呗 然后 url 自己记录下 然后写个伪静态 ok
    guoyu4126
        6
    guoyu4126  
    OP
       2018-08-13 17:36:00 +08:00
    @zjsxwc 受用。 谢谢
    yuanxing008
        7
    yuanxing008  
       2018-08-13 17:50:59 +08:00   1
    不用考虑其他了,按照你现在需求就是做个现有功能列表的文档,然后选一个框架直接重写,先实现原有功能,后续维护就很方便了,我司去年还是前年来着,主业务系统就是这样子做的
    thesharjah
        8
    thesharjah  
       2018-08-14 11:01:41 +08:00
    其实现在大部分 PHP 的框架也是面向过程,不是面向对象的
    可能你想的只是把基于 function 的改成基于 object ?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1074 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:27 PVG 07:27 LAX 15:27 JFK 18:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86