以往的版本我们就不说了(已经由了掩护生命期了 大家也没有必要揪着历史说事,事物都在发展),毕竟和LV相提并论的最多也是TP5。
我们在开拓TP5的时候 一方面接管了以往版本的用户反馈和抱怨,一方面也接管了国外主流框架思想的洗礼(例如Laravel,很多用户说TP5参考了yii2 ZF2 实在并没有 如果你看到了只能解释主流的当代思想是殊途同归的),并秉承了TP一向的大道至简的开拓思想,经由了长达十月的开拓测试才出身了第一个TP5的正式版本,并且已经迭代到了V5.0.4版本了。该当来说表面上沿用了Larave的很多方法和思想,实在实质上的实现差异很大或者完备不同。 沿用(或者说是在有些人眼中的抄袭也好)的目的紧张包括: 1 我们找不到更适宜的英文单词(但LV很多单词是用的很生僻,TP5紧张的单词都是四级之内词汇) 2 我们在为接管转化LV开拓用户做铺垫^_^
因此在上手难度和性能上比较较laravel是占上风的,加上从正式版发布后的文档教程系列一贯在完善(紧张是迎合海内的新手),由于从TP3.2版本到5.0版本跨度非常之大,我们也认识到存在不可避免的用户流失落(比较较TP3.2引入了很多的主流当代开拓思想,须要补课很多 包括composer、面向工具、依赖注入等),但我们也相信,我们的新版本也会俘获其余一批懂我们的用户,从而转向TP5(事实上确实如此)。
TP5并非只是纯挚的借鉴,一样有大量的创新,尤其在路由、日志、掌握器和模型的一些细节方面,这些只有真正去用过才能体会。TP5的底层架构和LV是完备不同的设计,但都遵照一些规范(包括PSR-2,PSR-4,RESTFul),并都在往主流的设计思想靠拢。
但作为一个新出身的孩子路还有很长,生态之类的还不足完善(LV也不是靠官方团队做大的 有大量的人在为生态贡献),以是从我们的角度来看,TP5和LV5 孰好孰坏,没有绝对,从长远来看,TP5在海内替代LV5的可能性越来越大,至少在海内我们的上风非常明显(可以参考百度指数和谷歌趋势数据),包括性能、文档以及社区(如果是盲目崇拜LV的我也无话可说,毕竟海内也有盲目崇拜TP的^_^)。
由于LV的架构和内部实现相称的繁芜,比较较而言TP的代码和文档 都非常随意马虎阅读和理解,那么扩展起来自然就会轻松很多,LV主打的便是优雅、当代编程思想以及精良的扩展生态。但TP5一样优雅,并且功能不会缺失落太多,至于扩展生态方面就须要靠社区和用户的参与和贡献了。在海内PHP开源框架这块,我们风风雨雨走了十多年,我们理解我们的用户的想法,同时也在学习接管国际的当代开拓思想。
附:Laravel与thinkPHP的异同点
紧张差异:(thinkPHP更适宜国人的编码习气)
1.渲染模版办法的不同:
在Laravel框架里,利用return view()来渲染模版;
而ThinkPHP里则利用了$this->display()的办法渲染模版;
2.在Laravel框架里,由于其考虑到了跨站要求假造, 以是如果利用form表单以post办法进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法缺点;
而TP框架则须要自己手动完成防止跨站攻击的代码;
3.Laravel是一个重路由的框架(5.4),所有的功能都是由路由发起的,哪怕没有掌握器方法,只要写了路由就能够访问,thinkPHP(3.2),必须要有掌握器方法才能正常访问;
4.laravel具有强大的社区化扩展,(composer扩展自动加载);
5.laravel具有强大的Blade模版引擎;
6.中间件,Laravel特点,可以实现访问前后的处理,例如要乞降返回,权限认证等;
7.条件判断语句书写办法的差异:
Laravel框架里 if else判断语句和foreach语句 书写时必须以@if开头 以@endif结尾,如果没有则报语法缺点,@foreach @endforeach同理;
而TP框架则和PHP语法规则利用办法同等直接ifesle语句判断和foreach循环遍历
Laravel里内置了大量的方法供开拓者利用,在实际运用中更靠近于”让工具完成统统”的开拓思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法,例如对用户名的验证:我们利用可以validate方法里’username’=>’required'(不能为空)|alpha_dash(必须数字字母下划线)|between:6,18(在多少位数之间);还内置了例如email;same:字段名;diff:字段名等大量的方法极大的提高了开拓速率;
加密办法 在TP框架中 我们对用户名密码进行加密时利用md5();的办法进行加密,但md5的缺陷在于其可以逆向破解,而且在同等规则下同样的密码md5加密出的字符串是有可能涌现相同的,这就降落其安全性;
但在Laravel框架中内置了”哈希”Hash加密单向加密方法,且同样的参数加密出的字符串是绝对不会涌现相同的情形 这就提高了安全性;
在实际开拓中我们常常碰着这样的问题,便是开拓地点不固定,这就造成了我们须要频繁的变动数据库配置,给开拓事情造成了麻烦,TP依然没有避免这个”灾害”;在laravel框架中,.env环境文件的涌现办理了这个麻烦,我们只须要在不同的事情地点配置好.env文件就不必再进行配置,由于无论是git还是svn ” .env是不会随着文件一起提交到做事器的”。