thinkphp相对laravel的区别

以下针对tp框架的优势描述:

  1. 表单令牌

#tp5 
{:token()}
# laravel [强制]
@csrf
  1. 路由

    1. tp 支持三种路由模式, URL对SEO友好
    2. laravel 只支持强制模式, 不定义路由不能用
  2. 模板渲染

    # tp
    $this->fetch / display ();
    # laravel
    return view();
    
  3. 操作数据库 :

    1. 原生sql 查询语法不同
    # tp
    Db::query / Db::execute
    # lar
    Db:操作方法('sql 语法');
    # 框架支持的sql方法类似
    
    1. 两种框架防范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();
    
  4. 条件语句语法

    # tp
    {if} {elseif/}{else /}{/if}
    # laravel
    @if ()   
    @elseif ()
    @else
    @endif
    
  5. 升级难度

    1. tp : 重构量大
    2. lar : 升级简易
  6. tp不重合 laravel 的核心特性

    1. tp 支持
      • 依赖注入 (控制反转 loc)
    2. laravel 支持
      • 依赖注入 (控制反转 loc)
      • 服务容器
      • 门面模式
      • 契约
      • 中间件
  7. 依赖注入使用不同

    1. tp : 在控制器引入就能用
    2. lar : 在控制器引入 + 服务注册到服务容器
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容