thinkphp和laravel一样吗?答案是:完全不一样

2022-07-2410:25:49后端程序开发Comments2,342 views字数 1595阅读模式

thinkphp和laravel一样吗?答案是:完全不一样文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

本文操作环境:Windows10系统、ThinkPHP5&&Laravel8版、Dell G3电脑。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

thinkphp和laravel一样吗

thinkphp和laravel不一样文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

ThinkPHP是免费开源的,快速的,简单的,面向对象的轻量级PHP开发框架,ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

Laravel 是一个由Taylor Otwell所创建,免费的开源PHP Web 框架,旨在实现的Web软件的MVC架构,并作为CodeIgniter的替代方案。其源代码托管于GitHub,许可条款为MIT许可证。Laravel的特色包含:支持用户身份验证和许可,具有模块化的包系统且有专属的包库,提供连接许多种类的关连式数据库的方式,提供工具来协助应用程序的部署和维持,并且发展出许多语法糖。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

主要区别:(thinkPHP更适合国人的编码习惯):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

1、渲染模版方式的不同:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

在Laravel框架里,使用return view()来渲染模版;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

而ThinkPHP里则使用了$this->display()的方式渲染模版;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

2、在Laravel框架里,由于其考虑到了跨站请求伪造, 所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法错误;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

而TP框架则需要自己手动完成防止跨站攻击的代码;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

3、Laravel是一个重路由的框架(5.4),所有的功能都是由路由发起的,哪怕没有控制器方法,只要写了路由就能够访问,thinkPHP(3.2),必须要有控制器方法才能正常访问;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

4、laravel具有强大的社区化扩展,(composer扩展自动加载);文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

5、laravel具有强大的Blade模版引擎;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

6、中间件,Laravel特点,可以实现访问前后的处理,例如请求和返回,权限认证等;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

7、条件判断语句书写方式的差异:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

Laravel框架里 if else判断语句和foreach语句 书写时必须以@if开头 以@endif结尾,如果没有则报语法错误,@foreach @endforeach同理;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

而TP框架则和PHP语法规则使用方式一致直接ifesle语句判断和foreach循环遍历文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

Laravel里内置了大量的方法供开发者使用,在实际应用中更接近于"让对象完成一切"的开发思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法,例如对用户名的验证:我们使用可以validate方法里'username'=>'required'(不能为空)|alpha_dash(必须数字字母下划线)|between:6,18(在多少位数之间);还内置了例如email;same:字段名;diff:字段名等大量的方法极大的提高了开发速度;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

加密方式 在TP框架中 我们对用户名密码进行加密时使用md5();的方式进行加密,但md5的缺点在于其可以逆向破解,而且在同等规则下同样的密码md5加密出的字符串是有可能出现相同的,这就降低其安全性;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

但在Laravel框架中内置了"哈希"Hash加密单向加密方法,且同样的参数加密出的字符串是绝对不会出现相同的情况 这就提高了安全性;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

在实际开发中我们常常遇到这样的问题,就是开发地点不固定,这就造成了我们需要频繁的更改数据库配置,给开发工作造成了麻烦,TP依然没有避免这个"灾难";在laravel框架中,.env环境文件的出现解决了这个麻烦,我们只需要在不同的工作地点配置好.env文件就不必再进行配置,因为无论是git还是svn " .env是不会随着文件一起提交到服务器的"。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/25888.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/25888.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定