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:
-
laravel写法是用@开头:
@if @elseif @else @endif
,
点击看大佬的总结。
-
tp写法是用{}括起来:
{if} {elseif /} {else /} {/if}
,
点击看大佬的总结。
面试能说完这几项应该也差不多了。。。(心虚~ o(
 ̄▽ ̄
)o