laravel与thinkphp之间的区别与优缺点

Laravel框架:

Laravel是当今最熟练,流行和普遍使用的开源框架之一,一直秉承着优雅的原则,完美支持**composer**,实现了更丰富的扩展,社区文档活跃,相较于TP,Lavavel更庞大,安全性也更高,更适合开发大中型项目,被称为“巨匠型开发框架”。php


问题描述:

一、渲染模版方式的不一样

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

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

这就形成了咱们须要频繁的更改数据库配置,给开发工做形成了麻烦。TP依然没有避免这个”灾难”,在laravel框架中,.env环境文件的出现解决了这个麻烦。咱们只须要在不一样的工做地点配置好.env文件就不避再进行配置,由于不管是git仍是svn,“.env是不会随着文件一块儿提交到服务器的”。laravel

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

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

四、post传值中注意点不一样

在Laravel框架里,因为其考虑到了跨站***,因此若是使用form表单以post方式进行传值时,若是再也不form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法错误,而TP框架则须要本身手动完成防止跨站***的代码。程序员

五、条件判断语句书写方式的差别

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

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

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

七、加密方式

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

八、建表

Laravel在数据库建表上有本身独立内置的结构,能够彻底不用借助原生SQL语句或者SQLyogEnt、Navicat这样的建表工具进行数据库的创建,增删改查和数据交互。我想这多是它紧紧占据NO.1的一大亮点,在ThinkPHP中则须要咱们借助SQL语句或者建表工具去逐步完善数据。thinkphp

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

九、ORM

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

php artisan make:model XXX;

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

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

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

十、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驱动。

laravel和thinkphp:

laravel和thinkphp哪一个框架好用

thinkphp,采用mvc思想开发,它活动范围主要是国内,并且彻底免费开源,学习资料很是丰富,对于新手来讲是学习php框架最佳的选择,主要仍是都是中文文档。从5.0版本开始,号称为API开发而设计的高性能框架。配置开发也是很是简单,通常下载框架就能够直接开发,开发代码风格也符合国人思想,因此简单,快捷,适合新手的php框架。

Laravel框架,为 WEB 艺术家创造的 PHP 框架,同时也是目前API开发最好的高级php框架。咱们都知道php主要是网站web开发,Laravel框架开发优雅,简单的代码,并且Laravel是为人而设计框架,开发的思惟比较合适中级程序员思路,因此有经验的php程序员比较青睐Laravel框架。新手为何不强烈推荐呢?主要是Laravel框架是一个国际的框架,不少都是英文文档,虽然还有中文文档,可是资料有限,不少有用的资料都不是免费的,能够说是Laravel框架是半开源代码,新手若是没有人带,可能须要学习精力是有限的。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相关文章
相关标签/搜索