百科狗-知识改变命运!
--

laravel与thinkphp区别是什么

泡在奶味里10个月前 (12-21)阅读数 3#综合百科
文章标签框架方式

1、渲染模版方式的不同

在Laravel框架里,使用return view()来渲染模版;而ThinkPHP里则使用了$this->display()的方式渲染模版。

2、在实际开发中我们常常遇到这样的问题,就是开发地点不固定。

这就造成了我们需要频繁的更改数据库配置,给开发工作造成了麻烦。TP依然没有避免这个"灾难",在laravel框架中,.env环境文件的出现解决了这个麻烦。我们只需要在不同的工作地点配置好.env文件就不避再进行配置,因为无论是git还是svn,“.env是不会随着文件一起提交到服务器的”。

3、Laravel框架提供了大量的闭包

作为菜鸟的我目前只使用了use方法,即如何在函数内部使用外层变量。

4、post传值中注意点不同

在Laravel框架里,由于其考虑到了跨站攻击,所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法错误,而TP框架则需要自己手动完成防止跨站攻击的代码。

5、条件判断语句书写方式的差异

Laravel框架里if else判断语句和foreach语句,书写时必须以@if开头,以@endif结尾。如果没有则报语法错误,@foreach @endforeach同理;而TP框架则和PHP语法规则使用方式一致,直接用if esle语句判断和foreach循环遍历。

6、Laravel里内置了大量的方法供开发者使用

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

7、加密方式

在TP框架中,我们对用户名密码进行加密时使用md5();的方式进行加密。但md5的缺点在于其可以逆向破解,而且在同等规则下同样的密码md5加密出的字符串是有可能出现相同的,这就降低其安全性。但在Laravel框架中内置了"哈希"Hash加密单向加密方法,且同样的参数加密出的字符串是绝对不会出现相同的情况,这就提高了安全性。

8、建表

Laravel在数据库建表上有自己独立内置的结构,可以完全不用借助原生SQL语句或者SQLyogEnt、Navicat这样的建表工具进行数据库的建立,增删改查和数据交互。我想这可能是它牢牢占据NO.1的一大亮点,在ThinkPHP中则需要我们借助SQL语句或者建表工具去逐步完善数据。

8.1、首先我们需要建立模型:我用的是gitbash。gitbash是Windows下的命令工具,基于msys GNU环境,有git分布式版本控制工具,主要应用于git。但是在Laravel里也可以直接使用:php artisan make:model Models/GoodsModel -m 完成模型的创建和建表结构的创建(/database/migrations)。

8.2、向goods数据表填充数据,要注意数据的类型是严格区分的,并且一定要加。添加完后使用php artisan migrate命令完成表的创建。

Schema::create('goods', function (Blueprint $table) {

$table->increments('id')->comment('商品主键');

$table->string('title')->comment('商品的标题');

8.3、假设某个字段不符合要求或者需要添加字段怎么办?无须担心,从github中pull下项目后在数据表里直接修改,只需要用:

php artisan migrate:refresh

9、ORM

在介绍建表时已经使用了创建模型的命令:

php artisan make:model XXX;

Laravel里模型是对面向对象开发思想最好的诠释,让对象帮我们完成需求。

摘自5.1手册:(Laravel 的 Eloquent ORM 提供了漂亮、简洁的 ActiveRecord 实现来和数据库进行交互。每个数据库表都有一个对应的「模型」可用来跟数据表进行交互。你可以通过模型查找数据表内的数据,以及将记录添加到数据表中。)

laravel与thinkphp区别是什么

本人在实际使用中也实实在在的感受到了通过创造模型对数据表操作带来的便利,譬如:批量赋值,跨表查询,删除模型和软删除,模型关联,当然这些在TP框架中也可以利用模型实现。这一点属于仁者见仁智者见智,根据个人喜好而定。

10、session的用法

10.1、ThinkPHP对Session操作进行了封装,并且无需引入就可以使用,Session的启动会在应用初始化的时候自动执行,所以无需手动使用Session::start() 来启动Session。

使用Session类操作和普通方式调用$_SESSION来操作并没有本质不同,只是Session类很多参数可以根据项目配置来灵活设置,最常用的操作方法示例:

// 检测Session变量是否存在:Session::is_set('name');

// 给Session变量赋值:Session::set('name','value');

// 获取Session变量:Session::get('name');

10.2、Laravel中Session的常用方法:

$request->session()->get('key');//获取session里的某个键名

$request->session()->set('key','default');//设定一个默认值,当指定键名不存在便返回默认值

$request->session()->all();//返回所有数据

session('k'=>$v);//写入session保存数据

以及闪存数据session()->flash()和保留特定数据->keep(['','']);

也可以自定义session驱动。

Gxlcms,大量的免费laravel入门教程,欢迎在线学习!

laravel和thinkphp的区别是什么?

====ThinkPHP是mvc框架 主要用于后台语言开发

====Smarty是模板引擎 用于前台模板更改

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

一、渲染模版方式的不同

1、在Laravel框架里,使用return view()来渲染模版;

2、而ThinkPHP里则使用了$this->display()的方式渲染模版。

二、条件判断语句书写方式不同

1、Laravel框架里if else判断语句和foreach语句,书写时必须以@if开头,以@endif结尾。如果没有则报语法错误,@foreach @endforeach同理;

2、而TP框架则和PHP语法规则使用方式一致,直接用if esle语句判断和foreach循环遍历

三、post传值中注意点不同

1、在Laravel框架里,由于其考虑到了跨站攻击,所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法错误,

2、而TP框架则需要自己手动完成防止跨站攻击的代码。

四、加密方式不同

1、在TP框架中,我们对用户名密码进行加密时使用md5();的方式进行加密。但md5的缺点在于其可以逆向破解,而且在同等规则下同样的密码md5加密出的字符串是有可能出现相同的,这就降低其安全性。

2、但在Laravel框架中内置了"哈希"Hash加密单向加密方法,且同样的参数加密出的字符串是绝对不会出现相同的情况,这就提高了安全性。

扩展资料:

在实际开发中常常遇到这样的问题,就是开发地点不固定。这就造成了需要频繁的更改数据库配置,给开发工作造成了麻烦。TP依然没有避免这个"灾难",在laravel框架中,.env环境文件的出现解决了这个麻烦。需要在不同的工作地点配置好.env文件就不避再进行配置,因为无论是git还是svn,“.env是不会随着文件一起提交到服务器的”。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)