您的当前位置:首页>全部文章>文章详情

【PHP】ThinkPHP与Laravel一样吗

CrazyPanda发表于:2024-07-14 21:24:38浏览:291次TAG:
thinkphp和laravel是不一样的。thinkphp和laravel虽然都是php开发框架,但是有很多区别:1、渲染末班的方式不同,thinkphp用“$this->display()”的方式渲染模版,laravel使用“return view()”方法;2、laravel是一个重路由的框架,而thinkphp要有控制器方法才能正常访问。

thinkphp和laravel不一样

ThinkPHP是免费开源的,快速的,简单的,面向对象的轻量级PHP开发框架,ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

Laravel 是一个由Taylor Otwell所创建,免费的开源PHP Web 框架,旨在实现的Web软件的MVC架构,并作为CodeIgniter的替代方案。其源代码托管于GitHub,许可条款为MIT许可证。Laravel的特色包含:支持用户身份验证和许可,具有模块化的包系统且有专属的包库,提供连接许多种类的关连式数据库的方式,提供工具来协助应用程序的部署和维持,并且发展出许多语法糖。

主要区别:(thinkPHP更适合国人的编码习惯):

1、渲染模版方式的不同:

在Laravel框架里,使用return view()来渲染模版;

而ThinkPHP里则使用了$this->display()的方式渲染模版;

2、在Laravel框架里,由于其考虑到了跨站请求伪造, 所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法错误;

而TP框架则需要自己手动完成防止跨站攻击的代码;

3、Laravel是一个重路由的框架(5.4),所有的功能都是由路由发起的,哪怕没有控制器方法,只要写了路由就能够访问,thinkPHP(3.2),必须要有控制器方法才能正常访问;

4、laravel具有强大的社区化扩展,(composer扩展自动加载);

5、laravel具有强大的Blade模版引擎;

6、中间件,Laravel特点,可以实现访问前后的处理,例如请求和返回,权限认证等;

7、条件判断语句书写方式的差异:

Laravel框架里 if else判断语句和foreach语句 书写时必须以@if开头 以@endif结尾,如果没有则报语法错误,@foreach @endforeach同理;

而TP框架则和PHP语法规则使用方式一致直接ifesle语句判断和foreach循环遍历

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

加密方式 在TP框架中 我们对用户名密码进行加密时使用md5();的方式进行加密,但md5的缺点在于其可以逆向破解,而且在同等规则下同样的密码md5加密出的字符串是有可能出现相同的,这就降低其安全性;

但在Laravel框架中内置了"哈希"Hash加密单向加密方法,且同样的参数加密出的字符串是绝对不会出现相同的情况 这就提高了安全性;

在实际开发中我们常常遇到这样的问题,就是开发地点不固定,这就造成了我们需要频繁的更改数据库配置,给开发工作造成了麻烦,TP依然没有避免这个"灾难";在laravel框架中,.env环境文件的出现解决了这个麻烦,我们只需要在不同的工作地点配置好.env文件就不必再进行配置,因为无论是git还是svn " .env是不会随着文件一起提交到服务器的"。


猜你喜欢

【PHP】大规模项目中PHP框架的性能考虑
在大型 php 项目中,选择框架至关重要,关键性能考虑因素包括可扩展性、内存消耗、响应时间和并发性。比较流行框架的性能:laravel 具有高可扩展性和并发性,但内存消耗较高;symfony 性能均衡,非常可扩展;codeigniter 可扩展性高,但响应时间和并发性较低;zend framework 可扩展性、响应时间和并发性都很好。根据不同项目要求选择合适的框架,例如社交媒体平台推荐使用 symfony,而电子商务网站推荐使用 laravel。优化性能的技巧包括使用缓存、优化数据库查询、启用
发表于:2024-05-31 浏览:314 TAG:
【PHP】详解PHP的Sodium加密扩展函数
Sodium 出现的目的也是为了代替Mcrypt这个原来的加密扩展。在 PHP7.2 之后,Mcrypt已经被移除,在PHP7.1时就已经被标记为过时。不过,Sodium扩展的应用也并不是很多,大部分情况下我们都会使用OpenSSL来进行加密操作,所以,我们这篇文章只做了解即可。Sodium 扩展在 PHP7.2 后是跟随 PHP 源码一起发布的,只需要在编译的时候加上 --with-sodium 即可安装成功。如果是 PHP7.2 之前的版本,需要单独安装这个扩展。同时,操作系统中也需要安装
发表于:2023-12-19 浏览:291 TAG:
【PHP】怎么取出php数组的前几个元素
        取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。详细介绍:1、使用array_slice()函数,可以从数组中取出指定范围的元素,并返回一个新的数组,可以通过设置第三个参数来指定需要取出的元素个数等等。PHP是一种广泛使用的编程语言,它提供了许多强大的数组操作函数和方法。在PHP中,我们可
发表于:2023-12-14 浏览:391 TAG:
【PHP】设计模式的六大原则
设计模式的六大原则是指导软件开发设计的核心原则,它们帮助开发人员创建可维护、可扩展和灵活的软件系统。这些原则包括: ‌    单一职责原则(Single Responsibility Principle, SRP):一个类应该只有一个引起它变化的原因。这有助于减少类与类之间的耦合,提高类的内聚性和可读性。 ‌    开闭原则(Open-Closed Principle, OCP):软件实体(如类、
发表于:2024-07-16 浏览:271 TAG:
【PHP】Thinkphp8 配置异常全局捕捉处理
封装异常处理配置先创建自己的 BaseException 类<?php namespace app\exception; use app\enums\StatusCodeEnum; class BaseException extends \Exception {     public $success = false;    &nbs
发表于:2024-01-04 浏览:308 TAG:
【PHP】php函数介绍—array_product(): 计算数组所有元素的乘积
在PHP中,有许多强大的函数可以帮助我们处理数组。其中一个有用的函数是array_product()。该函数用于计算数组中所有元素的乘积,并返回结果。在本文中,我们将介绍如何使用array_product()函数,并提供一些实际的代码示例。首先,让我们来了解一下array_product()函数的基本用法。该函数接受一个数组作为参数,并返回该数组中所有元素的乘积。如果数组为空,则返回值为1。下面是使用array_product()函数的代码示例:$array = array(
发表于:2024-07-30 浏览:293 TAG:
【PHP】php7.4安装zipArchive,使用ZipArchive类的问题及解决方法
一、问题描述在开发过程中,有时会遇到PHP报错提示"Class ZipArchive not found",这是因为PHP的ZipArchive类没有被正确加载导致的。二、具体步骤及代码步骤1:确认环境在开始解决问题之前,我们需要确认一下当前环境是否满足使用ZipArchive类的要求。首先,我们需要检查PHP版本是否符合要求,一般来说,PHP版本需要大于等于5.2.0才能使用ZipArchive类。可以通过以下代码来检查PHP版本:<?php   
发表于:2024-01-31 浏览:333 TAG:
【PHP】如何使用PHP8中的Constructor Property Promotion来优化数据库查询操作
如何使用PHP8中的Constructor Property Promotion来优化数据库查询操作?引言:随着互联网的快速发展,大量的数据被存储在数据库中。而在Web应用中,数据库查询操作是非常常见的需求。然而,不规范的数据库查询操作可能导致性能下降和安全隐患。因此,优化数据库查询操作是一个非常重要的任务。PHP语言一直以来都是Web开发的热门选择,而随着PHP8版本的发布,Constructor Property Promotion(构造函数属性提升)成为了一个非常方便的特性。结合Const
发表于:2023-12-30 浏览:347 TAG:
【PHP】PHP8中支持数组的新函数,让数组操作变得更加便捷
PHP是一种常用的Web编程语言,已经成为了众多Web应用的首选开发语言。在PHP8中,新增了不少有用的函数和特性,其中一个十分值得关注的改变就是对数组操作的优化。PHP8中新增了许多针对数组的函数,使得开发者可以更易于编写高效的代码并减少代码中的常见错误。在本文中,我们将介绍PHP8中一些有用的数组函数,并展示如何使用它们来提高自己的PHP编程技能。array_is_list()函数array_is_list()函数用于检查一个数组是否是“列表数组”,即数组中的索引是否是从0开始、且连续递增的
发表于:2024-01-07 浏览:331 TAG:
【PHP】PHP8如何使用Mixed Type处理各种不同类型的数据
PHP8如何使用Mixed Type处理各种不同类型的数据?PHP8是PHP语言的最新版本,引入了许多新的功能和改进。其中一个重要的改进是Mixed Type(混合类型)的引入,它允许开发者在函数参数、返回值和变量声明中处理各种不同类型的数据。在以前的PHP版本中,我们通常使用特定的类型(如int、string、array等)来声明变量、参数和返回值的类型。然而,这种限制有时候会限制我们对数据的处理能力。例如,如果一个函数接受一个数组作为参数,但我们希望还可以传递一个字符串或对象,那么我们需要编
发表于:2023-12-30 浏览:365 TAG: