作者:小色米虫_524 | 2021-08-30 19:02
公司要重新开发商城网站,之前是用ecshop的,现在要重新开发,要用框架来写,以上三个个人参考了网上的评论,是最为较好的,但不知如何选择。还有一方面,希望能对商城网站有较大的控制自由度,主要是对商城的后期功能扩展而不用局限于框架,但又容易跟框架结合。本人初级phper,求各位大神给点意见
公司要重新开发商城网站,之前是用ecshop的,现在要重新开发,要用框架来写,以上三个个人参考了网上的评论,是最为较好的,但不知如何选择。还有一方面,希望能对商城网站有较大的控制自由度,主要是对商城的后期功能扩展而不用局限于框架,但又容易跟框架结合。本人初级phper,求各位大神给点意见
回复内容:
个人比较推荐yii,原因如下:
- 性能上:phalcon > yii ≈ laravel,因为phalcon使用C语言开发,以php扩展的方式加载,这样不需要对框架进行额外的解析和执行,所以性能好。但同时也降低了框架的可控性,框架层面出现bug不好排查,不懂C语言和php扩展开发很难修复。
- 代码的可读性上来说,laravel更胜一筹。(表现力较强,不懂php基本也能看懂他在做什么)
- 但从开发速度上来说,yii ≥ laravel > phalcon。
- 从学习成本、使用成本:yii ≥ laravel > phalcon。
综合上述:yii以微弱的优势领先,推荐yii。
Yii 强大的组件,丰富的类库,成熟的模式,方便的gii,各式的widget,使你开发速度提升了几个等级
我用好几年了,公司上项目基本都是yii。
更多案例:
http://www.yiichina.com/cases
我用过不少PHP框架,CI/Kohana/Zend/Yii/Qcodo,也research过laravel,没什么不喜欢,不过技术上我已经懒得区分它们的长短,形成不了本质的区别。Yii是一个成熟的优秀框架,它的架构贴近实际用例,源代码也很好读,这不是说其他框架就不是这样,只是说Yii做得也很好。
我最后待在Yii的阵营,首先当然我喜欢这个框架给开发提供的可能性,和它的架构设计;
但最主要的是因为Yii的作者薛强,Qiang Xue | LinkedIn
Qiang Xue is an established software engineer with 10+ years of enterprise software development experience. He is an expert in business intelligence software as well as Web framework development. He is the founder of Yii, one of the most popular Web frameworks, powering thousands of Web applications. Qiang is an avid open source contributor, a big fan and practitioner of test-driven development and agile methodology. Qiang received his PhD degree in Computer Science from Duke University.
是一个说中国话的华人,如果我打算把我的时间投资在一项关键技术或者一个社区,我认为作者和作为使用者的文化有重合是很重要的非技术因素;
也许只是我个人的感觉 — 直到有一天我悄悄地注意到,我的法国同事极力推崇Symfony懒得看Yii哪怕我把各种advantage是多么适合新手上手(想必SF)和敏捷开发都放到ppt里了。
文化是重要的,用Yii让我和它有种Connection,我比较care,说白了,就因为哥们是华人;流不流行真的,算个什么,况且Yii也很流行,用它做了很多项目,一直很舒适。
供你参考:选框架前我阅读了很多篇文章,国内的国外的,中英文都有,最后选择Yii ==> Yii2
从11年接触yii开始,知道现在,用yii做了好几个项目,大概都属于BAT里边的中小型startup项目比较多。最近的一个是一个电商项目的应用层。整体来说yii的确是一个很好的平衡。
1.自动化crud,让你在有了数据建模之后,瞬间完成界面。
2.layout等view的布局模式,让你可以轻松区块化。
3.灵活的widget机制,重用区块也很方便,这次电商系统页面上复杂的广告位就通过这个来实现的。
4.模块的提供,能让几个团队在同一个项目中轻松分割代码。(运营的活动,都是另外一个开发团队在几个模块先单独去开发的)
5.url manager 的规则,能将一个controller变换成任意客户需要的url link 格式(一开始客户要xxx/product-111.html 后来要xxx/p/111.html最后要xxx/111.html)
6.缓存、session等封装,让你轻松在redis 文件缓存,数据库等之间切换
7.强大的log系统,不同级别的日志,方便trace问题
8.验证部分可能见仁见智,但是对于初期,良好的model+validate的封装,可以重用前端js和后端PHP层的验证,而表单提交的验证,也是最复杂的部分,相对就简化了
9.主题功能,通过不同主题,实现了一期二期的迅速迭代开发。同时也实现了pc版和移动版
10.性能方面,通过opcache,实际上并不慢,可以想见php7支持后,性能仍然可以提高一个层次。千万pv到亿级pv而言,也能撑住,当然如果有这么大的量,您可以选择任何技术架构了。
暂时这么多,有什么问题,大家可以留言,真心推荐startup用yii,只要follow规则,写出来的代码质量也比较高。其他两个框架,我用得不多,不做评价。
在国外,Symfony2 一直是企业级php框架的标准,电商也基本使用Symfony2,例如Magento,Sylius等,我做过简单的比较,Laravel 和 symfony 在架构和核心功能上,基本上是一模一样的~~不存在谁更强大之说。 但是laravel 有两点不同,第一个语言优美,第二个out of box,它是以用户为中心的,做了比较多的封装,用了很多best practise的约定,偏向黑盒,比较像苹果的风格,就像苹果手机; symfony2 偏向白盒,架构清晰灵活,但是非常复杂繁琐~~你需要自己做很多轮子,好处就是轮子都可以很轻松调试,有点像windows的企业版。
单就框架本身而言,个人认为Laravel 5.1 是在所有当前『全栈式』php框架中最好的。这里的关键字是『全栈』,Laravel 5.1 几乎可以搞定任何web应用,和js的一些前端框架兼容得非常完美。也就意味着,个人开发者可以围绕这个框架独立的开发出非常牛B的应用,比如像以前热门的SNS社区系统,用laravel来实现基本上就是牛刀小试。
团队开发上Laravel 5.1 也极具优势,它良好的扩展性和先进的架构,是真正意义上的『现代框架』,团队可以基于框架的特性制定出非常丰富的开发策略。例如,Laravel对CLI命令有着良好的支持,这意味着自动化代码方面,可以有非常大的发挥空间。
无论是PHP菜鸟还是老手,Laravel 5.1都非常值得学习,它就好像是PHP领域的Photoshop,所以不用犹豫了。
如果这几个框架你都没用过,强烈建议先入手Laravel
个人推荐Yii
学习新框架能不能带来工资上涨?
如果回答是No。那么吹的再好的框架对你都是无(ran)所(Bing)谓(nuan)。不要在意那些个布道的人怎么说。我每次被人步道优雅,高效,个人修养的时候。我就直接问他能不能涨工资
市场对你的定价基本说明了一切。有时间学那玩意不如多陪陪你女票。
猿类通常思想比较单纯。容易被各种步道的人骗。大家要提高警惕!
--------------------------------------------------------------我用CI。比较简单的话不用框架。用一些composer包组装即可。Lara依赖太多的composer包了。每个组件看下来时间太长。Yii如果你要用内置的东西。就必须满足这些框架的命名以及各种既定的约束。
然而程序本身是非常自由的。每个语言不过是给我们一些基本的约束。具体房子怎么搭。全看个人爱好。
感觉你一旦熟悉了框架。最后一定会脱离这些东西的
个人观点:大部分框架都是坨翔。初学者的因为看不懂框架。所以觉得框架多么的厉害。高效方便。当然。学习框架对初学者养成一些规范和加深对语言理解还是非常有帮助的。但是一千个人心里有一千个哈姆雷特!框架再好也只不过是框架作者对某些语言的理解罢了!你的理解未必一样。当你熟悉了过后慢慢的就会有自己的独特理解和认识。
laravel, phalcon都囊括了当下流行的设计思想和编程意识
laravel虽然比较复杂,功能强大,结合composer,充分利用各种第三方类库组合实现框架,比如doctrine,symfony系列组件。必然是未来发展趋势,相当值得一用。
phalcon是通过扩展实现php框架的另一发展思路,同时还衍生出了zephir这种另类的php扩展开发方式,如果要对框架做深度定制,没有C的基础,确实是很大的一个难题,但是这个框架在出现问题的时候,容易让新人困惑,以及不好定位问题。
个人对Yii没有什么好感,槽点太多。奇怪的目录结构,不伦不类的名字空间规则(早期学java风格),有太多的规则来约束开发人员的行为,组件定义不好用,文档说明生硬。
上面几个框架,对初学者而言,门槛都比较高,如果不对框架做深入的学习和理解,很难轻松驾驭。
推荐symfony,功能强大,初学门槛低,设计思想前卫,适合大中型项目开发,好用。
最近公司做erp,没人管,我就选了个大家都说好的laravel,用laravel写出来的代码的确很优雅,还有很吸引我的是他的数据库迁移功能,团队协作开发时很方便。
说说缺点,路由功能虽然很强,但是有些繁琐,不是很简洁
性能肉眼看来并不是很好
读了一次源码,看到kenerl里路由分发和中间件看段被一堆闭包搞晕了,所以内部实现感觉并不是很简洁优雅
orm并不是很好用
文档翻译的不咋样,原版写的也不咋样,学习成本挺高