如何选择PHP项目的开发方案?

我说的项目开发方案并不是谈论到底用不用PHP去开发的问题,而是当你遇到一个项目,已经决定了用PHP,然后才来看的问题:用PHP的什么开发方案。

基本上有这么几种方案。各有各的说法,良莠不齐,我就谈谈我对它们利弊的认识,选择的时候也多个参考。

方案1:基于开源系统

常用的开源系统有:DiscuzPHPWindPHPMyWindPHPCMSDedeCMSEcshop系列等。

这种方式是最偷懒的,也是初学者的首选。因为一个初学者或者不学技术的人也能在分分钟之内依葫芦画瓢的搭建出一个系统。

但有技术和没有技术的区别在于后续能不能按需去修改,去扩展功能,去写插件,去深度二次开发......

很多人总认为这种方案是最容易的,但随着项目的不断出现的新需求,这样的方式就暴露出了很大的局限在后面。比如你用Discuz做了一个论坛,当你想添加一个系统中并没有事先开发的功能时就麻烦了,你很有可能需要开发插件,或者深度二次开发。

这就不是初学水平能胜任的,而是要高级水平才能自由的修改它,否则会遇到很多莫名其妙的情况。因为它就不只是需要添加新模板,甚至需要添加控制器和数据库的底层操作,需要伤筋动骨了。通常麻烦会大到你想撞墙以至于不想干的地步,如果你基础不够,此时你一定会陷入困扰之中。

所以,网上有很多这种方案开发的项目,后续的升级都变得很是困扰,甚至多年都不敢升级。

但不能因此就说这些系统没有意义,至少它给你“入门”了。否则一个新手就连搭建个系统都成问题,也会大大的影响学习的积极性和自信心。

方案2:基于某框架

这需要一定的PHP功底了。这种层次需要你自己开发控制器,Model,View层,需要自己设计数据库,需要懂面向对象编程思想。所以说需要一定的基础。

框架有:TP框架,Laravel框架,YII框架,CI框架等等。也是各有各的特点。没有最好的,只有更好的。

不要迷信某种框架!

如果你能使用这种方式来开发出项目,说明你有PHP基础,甚至有点水平了。同时比如控制器是你自己开发的,你就可以很方便的去修改某个功能和添加某个功能。

比如给用户添加一个留言的模块,一个微信支付的模块,一个在线视频的模块,就变得很容易。

这种方式的缺陷就是:一开始开发出一个系统就比较麻烦。基础不到位,你可能寸步难行,开发好久,系统都不能正常运营起来。

同时如果某个框架底层实现有问题或者太啰嗦,你不好修改。只有等到作者下一次的升级,或者你更换其他的框架。

所以选择这种方案需要一定的冒险,需要有实力去支撑。

方案3:直接开发项目,但都是用基础知识。

比如全是用PHP的函数去堆叠,一通的include,也没有模板解析引擎,也不做单入口,也没采用MVC,也不使用面向对象。

这种项目虽然最后开发出来了(而且很有可能开发的出来,因为就是搭积木的方式堆出来的),但维护起来麻烦,同时也没移植性可言。

每次开发一个新的项目都一样的工作量,每次也都像脱一层皮。

速度和效率都慢,不值得提倡。

方案4:直接开发项目,同时使用了更高级的知识如MVC的措施,面向对象思想。

这种方式虽然开发出的项目,同时维护起来比上述基础开发要容易。但是同样没有移植性可言。也不值得提倡。

方案5:自定义框架,在自定义框架上开发具体项目。

自己先用面向对象、MVC、单入口等开发个自定义的框架,然后在自己的框架之上开发具体项目。

这样的方式很好,好的地方就是你的底层可以自由的修改,不用等别人来升级什么的。

但是难度比较大。不适合一般的新手。

方案6:自定义框架,在自定义框架上开发通用系统,在通用系统上开发项目。

这样的方式很好,好的地方就是不但你的底层可以自由的修改,同时你的通用项目功能也可以随时升级。

但是难度是最大的,要求你对整个PHP体系有深刻的了解,同时开发过很多的项目,懂得要怎么才能优化系统,才能开发出实用的自定义框架和自适应通用系统。

这种方式不但具有方便的维护性,同时具有很好的可移植性。同时你可以根据需要随时升级底层和通用系统层,让它为你的所有项目做最好的服务。

值得提倡,但你如果不先脱几层皮,你是做不到的这种方案的。

开发的项目注意事项:

1:项目升级不要随意跟风,也不要动不动就升级,除非有硬性需求;

一些基础不够的人,自然没有全面的认识。看到有新的语法了,就想马上去用。总感觉既然有新的了,那就要用新的,这才合理,而不顾他自己的项目的情况,升级麻烦与否,技术力量跟得上与否,开发时间大概要多少。建议这些人自己去做一下再说。

因为很多技术负责人是那种只会说而不会写的技术部管家...盲目的瞎指挥会让你的技术团队饱受摧残,很多的时候都费力不讨好。

2:不要乱更换开发方案,除非你能把控的了;

比如:今天用Discuz开发了,但是发现一个能开发不了了,明天就换用PHPCMS,遇到了问题又更换为TP开发,再更换为Laravel去开发。

至于为什么要更换那种新的开发方案,也说不出个所以然,只是看网上别人说好就去改......古代剑道高手,基本上都是手中无剑,哪怕用的是一根棍子也能打败那种手持宝岛的不学无术之徒。所以,自己用的好,才是真的好。更换一个新的方案,除非你能把控的了。

3:在开发之前,选择好开发方案尤为重要。否则很可能走不下去,或者从头再来。浪费在不停的选择上......

posted @ 2017-04-27 22:17  妖星杉木  阅读(1759)  评论(0编辑  收藏  举报