【tp】【laravel】thinkphp和laravel的区别(不是纯复制粘贴)

  • Post author:
  • Post category:php




thinkphp和laravel的区别:

具体来说是tp5.1和laravel5.2的区别

如果很着急可以只看文章目录就是总结啦↓↓↓↓↓↓↓



1.laravel自带很多功能,tp更轻量级

  • tp为1.64 MB
  • laravel是26.2 MB

原因:

1.laravel框架中的vendor目录为25.4 MB,主要存放composer下载的类库比如:验证类、邮件类、上传类。

2.laravel框架自带了很多功能,比如中间件、数据迁移和数据填充、消息队列、事件等



2.laravel有自带Artisan命令工具,tp没有

Artisan 是Laravel中自带的命令行工具,可以使用它快捷生成新控制器、模型、中间件、jobs等。

比如:我想生成一个新的控制器

HomeController

  • 如果用tp,需要手动创建一个类文件;
  • 如果用laravel,只需要在项目路径下运行

    php artisan make:controller HomeController



3.laravel控制器方法设置对应路由才可以访问,tp不需要

比如,如果想访问Test控制器中的helloWorld方法:

  • tp可以直接按照既定的规则进行访问
http://域名/模块名/控制器名/方法名 ===> http://abaaba/index/test/helloWorld
  • laravel中必须在 routes.php 中设置该方法对应路由
Route::any('/hw','TestController@helloWorld');



4.Laravel要求post、put请求必须在表单中携带csrf_token,tp不需要

比如,开发者想在方法中获取post、表单数据:

  • tp的方法可以被post方式正常请求
  • laravel的方法被post方式请求时,会检测表单中是否有”_token”的参数值,而且这个值要和服务器Session里储存的一致,不一致就抛出异常TokenMismatchException。

laravel的目的为了防止

CSRF攻击,如何操作请点连接

(XSS的反射型攻击或蠕虫)

附上我的不太准确的理解出的原理图:

在这里插入图片描述



5.laravel的配置项基本在.env文件,tp配置项分布在config目录中

比如我们要配置数据库的配置项(host、用户名、密码):

  • laravel就修改该.env文件的

    DB_HOST、DB_USERNAME、DB_PASSWORD

    的值
  • tp就修改

    \config\database.php

    的配置项的值

所以laravel这点相对更方便,几乎很多重要的配置项都在

.env

文件里,假如有一天我们要在新电脑上拉取公司项目代码进行工作,拉取后只需要修改.env文件的配置项即可



6.控制器中渲染模板方式不同

  • laravel使用

    return view()

    来渲染模版;
  • tp使用

    $this->fetch()

    的方式渲染模版。



7.模板里使用条件判断、循环语句书写方式不同

比如,我想在模板中使用if+elseif+else:

面试能说完这几项应该也差不多了。。。(心虚~ o(

 ̄▽ ̄

)o



版权声明:本文为cherry_boat原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。