thinkphp相对laravel的区别
2020-06-27 本文已影响0人
X1_blog
以下针对tp框架的优势描述:
-
表单令牌
#tp5
{:token()}
# laravel [强制]
@csrf
-
路由
- tp 支持三种路由模式, URL对SEO友好
- laravel 只支持强制模式, 不定义路由不能用
-
模板渲染
# tp $this->fetch / display (); # laravel return view(); -
操作数据库 :
- 原生sql 查询语法不同
# tp Db::query / Db::execute # lar Db:操作方法('sql 语法'); # 框架支持的sql方法类似- 两种框架防范sql注入 ( 实现预处理的区别 )
# tp where/ query / execute 方法支持预处理, 需要手动写参数绑定 ; 支持不定长参数和数组传参两种方式 $model->query('select * from user where id=%d and status=%d',$id,$status); $model->query('select * from user where id=%d and status=%d',array($id,$status)); # lar 提供Eloquent模型, 每个表对应一个数据模型, 使用数据模型查询默认使用pdo参数绑定; 使用raw sql不启动预处理, 支持手动绑定参数 User::where('name', $input_name)->first(); User::whereRaw("name = ?", [$input_name])->first(); -
条件语句语法
# tp {if} {elseif/}{else /}{/if} # laravel @if () @elseif () @else @endif -
升级难度
- tp : 重构量大
- lar : 升级简易
-
tp不重合 laravel 的核心特性
- tp 支持
- 依赖注入 (控制反转 loc)
- laravel 支持
- 依赖注入 (控制反转 loc)
- 服务容器
- 门面模式
- 契约
- 中间件
- tp 支持
-
依赖注入使用不同
- tp : 在控制器引入就能用
- lar : 在控制器引入 + 服务注册到服务容器