2023 年 Laravel 性能优化终极指南

言鼎科技 2023-06-16 642

我们正在处理一个繁重的 Laravel 网站,其中包含许多请求和结构化查询语言/雄辩的调用。仍然有高CPU VPS和高内存,我们觉得性能提升空间很大。

Laravel 已成为构建以业务为中心的应用程序(包括电子商务平台和信息管理系统)的首选。

我们同意 Laravel 的发展突飞猛进,其始终如一的微调性能再次使其成为 2023 年最佳 PHP 框架。Laravel 是一个从简单的 Web 应用程序到复杂的 API 的一站式 PHP 开发框架。快速的开发方式、MVC 架构模式和一组库可以方便地构建结构良好的漂亮代码。

根据谷歌趋势,Laravel 在过去几年中仍然是最常用和最受欢迎的 PHP 框架。

2023 年 Laravel 性能优化终极指南

该框架具有一些出色的功能,使开发人员的工作变得轻松。当您在项目开发中使用 Laravel 时,您必须学习在您的应用程序中进行 PHP Laravel 性能优化的策略和技巧,以发挥最大的潜力。

Laravel 应用程序可以轻松优化,这是使用此框架的最佳部分,因为您可以在需要时优化您的应用程序以提高其性能。

网站速度的重要性

您可能想知道如果您的网站加载速度快一秒会有什么影响。相当于一枚金币!如果您想留住访问者并将他们转化为您的客户,即使是几分之一秒也很重要。

2023 年 Laravel 性能优化终极指南

用户界面、搜索排名、对话等都会影响您网站的 Google 排名。如果您的客户和访问者随着时间的推移面临性能滞后,他们将逐渐停止使用您的网站。

如何确保 Laravel 网站的安全性?

下面提供的 Laravel 网站安全最佳实践将确保您免受任何威胁。

选择用于托管的安全服务器

您应该定期备份您的网站,使用强密码并完成授权。您的网站包含用户的敏感信息;因此,您不应使用共享服务器。在选择您的 Web 服务器之前,您应该与您的提供商核实他们是否提供安全连接、使用 SSH 协议和身份验证、FTPS、SSL、专用网络和 VPN。为了提高安全性,您还可以考虑在您的 Linux 服务器上禁用 ssh 密码登录。

使用最新版本更新您的网站

不要错过最新 Laravel 版本带来的任何改进。确保为您的网站使用最新版本的 Laravel。最新版本是 Laravel 9。如果你不升级,你可能会缺少 Laravel 网站的基本功能。此外,较新版本的 Laravel 通常包括性能改进。

此外,请查看Laravel 9 中的新功能,以了解有关错误修复、安全改进和新功能的更多详细信息。

更新模块、包和插件

一件事是你应该只使用你的项目需要的模块、插件和包,并丢弃其他的。仅仅将 Laravel 网站更新到最新版本是不够的。您需要更新所有项目模块、包和插件。

检查防火墙设置

非常重要的是,你的 Laravel 网站应该有一个 Web 应用程序防火墙,作为你的 HTTP 应用程序的过滤器和监视器。您的 Web 应用程序防火墙应该是基于云的解决方案或安装在您的系统上。

2023 年 Laravel 性能优化终极指南

图片来源:GitHub

通过防火墙,您将获得许多好处,例如防止暴力攻击、垃圾邮件、后门、SQL 注入、DDOS 和其他保护。

使用 HTTPS

HTTPS(安全超文本传输协议)是一种互联网通信协议,可对用户数据进行加密和解密以保护其免受黑客攻击。它是互联网上最安全的通信方式,数百万网站使用它来保护用户的数据。

当您的 Web 应用程序使用 HTTP 时,您的所有网站信息都以明文形式传输,这很容易受到黑客和攻击。

因此,如果您在 HTTP 之上使用 HTTPS 将会有所帮助,这将确保您网站的信息安全。

想让您现有的应用程序可扩展并优化 SEO 吗?
从我们这里聘请 Laravel 开发人员,以获得安全、数字可扩展且高度优化的应用程序。

使用内置的 Laravel 安全功能

既然已经在里面了,为什么还要在外面搜索呢?是的,Laravel 带有一个内置的身份验证系统来保护您的网站信息。Laravel 框架负责用户身份验证,并只为每个用户提供所需的访问权限。

您网站的敏感信息仅限于用户,不会公开。保护它免受 SQL 注入攻击 用户输入(例如服务器变量、cookie 以及“GET”和“POST”等输入值)可能会增加 SQL 查询注入的漏洞。

为了克服这个问题,你应该使用 Laravel 的 Eloquent ORM,它使用 PDO 绑定来避免 SQL 注入。

验证和过滤数据

在以查询的形式将用户数据发送到您的系统之前,您必须始终过滤和验证数据以直接防止 SQL 注入。

批量分配期间采取预防措施

当您想要输入一长串变量时,批量分配是一个方便的功能。

但是,我们不推荐它,因为网络攻击者可以从客户端更改数据,这非常容易受到攻击。您可以使用 $fillable 或 $guarded 属性,但要非常谨慎,不要忘记向模型中添加新字段。

减少来自 CSRF 跨站请求伪造的 Laravel 漏洞

Laravel 使用 CSRF 令牌来确保没有虚假请求并且没有入侵。

每个用户都有自己的 CSRF 令牌,当用户发出任何请求时,Laravel 系统会将其与之前的用户会话令牌进行匹配。因此,您必须在编写 HTML 应用程序时添加一个隐藏的 CSRF 字段。

2023 年 Laravel 性能优化终极指南

图片来源:GitHub

要在实际操作中查看上述所有内容和一些额外的 Laravel 安全提示,请观看来自 WebDevMatics 的视频。你会彻底享受它。

在深入了解确保应用程序安全的关键点之后,现在是时候了解为什么要在 2023 年关注Laravel 性能优化和顶级 Laravel 性能优化技巧。

为什么关注 Laravel 性能优化?

您肯定已经创建了一个 Laravel 应用程序,Laravel 开发人员使用 PHP 框架和基本库来发挥您项目创意的最大潜力。但是,总有完善和改进的余地。

大多数企业使用 Laravel 来构建他们的业务信息系统,因此他们的业务性能与 Laravel 的性能密切相关。为确保 Laravel 项目的性能和部署顺利进行,您应该优先考虑优化 Laravel 应用程序以获得您的业务利益。

Laravel 管理信息系统使您能够做出重要的业务决策,因此优化 Laravel 应用程序的性能必将改善业务前景。

应用程序的顶级 Laravel 性能优化技巧

2023 年 Laravel 性能优化终极指南

1.路由缓存

如果您的 Laravel 应用程序有很多路由和配置,那么 php artisan 路由缓存是加速 PHP 应用程序改进的基本功能。

运行下面列出的命令来缓存 routes.php 文件

2023 年 Laravel 性能优化终极指南
php artisan 路由:缓存

在使用闭包时,artisan 命令抛出一个排除项。当我们甚至尝试编译路线时,建议与控制器交换。

它类似于配置缓存。您在 routes.php 中修改的更改一旦缓存就不会产生有利的效果。如果要刷新路由缓存,可以再次运行上面的代码。但是如果你想清除路由缓存,运行下面的代码。

2023 年 Laravel 性能优化终极指南
php artisan 路线:清除

2. 有效地使用 Artisan 命令

Laravel 在提升性能方面有额外的好处

2023 年 Laravel 性能优化终极指南
1. php artisan 配置:缓存2.3. php artisan路由:缓存4.5. // 注意:Artisan Optimize 在 Laravel 5.5 中被移除;这适用于以前的版本。6. php artisan 优化 --force

当您使用如此多的配置和路由文件时,命令很有用。提示:确保在更改后清除缓存

2023 年 Laravel 性能优化终极指南
1. php工匠配置:清除2.3. php artisan路由:缓存4.  5. php工匠视图:清晰

3.使用部署工具来呼吁所有命令

我们知道它不能被视为性能提示,但它会帮助您减少时间,这很重要。deployer 是一个部署工具,如果你曾经使用过 composer 来处理你的项目依赖,你会觉得很对。Deployer 可以通过一个命令作为种子、优化和迁移部署到 Laravel 应用程序。

2023 年 Laravel 性能优化终极指南
php deployer.phar 部署生产

您可能还喜欢阅读

顶级 Laravel 软件包

4. 预加载

检索 Eloquent 关系最常见的问题是 N+1 查询问题。让我帮助您了解两种不同型号的公寓及其所有者的这种情况。考虑一下如果你想找回他们的所有者,为了实现这一点,你将需要运行以下代码:

2023 年 Laravel 性能优化终极指南
$cars = App\Flat::all();

   foreach ($flats as $flat) {
     echo $flat->所有者->姓名;
   }

它将帮助您执行一个查询以从数据库中找出所有公寓,而另一个查询将帮助您找出所有者。让我们继续看图像,我们有 100 个公寓,这个循环需要 101 个查询:一个用于公寓,另一个用于找出每辆车的所有者。这听起来很常见是因为我们使用的是小型数据库吗?但是,我们希望您想象一个大型数据集和查询来想象实际情况。

为了克服这个问题,我们更喜欢使用预加载。

2023 年 Laravel 性能优化终极指南
$flats = App\Flat::with('owner')->get();

   foreach ($flats as $flat) {
     echo $flat->所有者->姓名;
   }

您可以通过运行上述代码将操作减少到仅两个查询。

准备好提高您的 Laravel 应用程序性能了吗?
联系最值得信赖的Laravel 开发公司,构建可扩展、高效且用户友好的应用程序

5.队列

如何使用队列来改进应用程序。您开发的图像是一个应用程序,它在注册时向新用户发送欢迎电子邮件。它使用第三方电子邮件服务,例如 Mailgun。一个新的用户记录将被插入到数据库中,因此呼叫被重定向到 Maligun 以发送欢迎电子邮件。

此第三方电子邮件可能需要几秒钟,因此用户可能会认为注册过程很慢。您可以使用 Queue 发送电子邮件并将其作为后台任务运行。该代码可能类似于以下内容:

2023 年 Laravel 性能优化终极指南
公共函数寄存器(请求 $request)
   {
     // 验证表单输入
     $this->validator($request->all())->validate();

     // 将用户持久化到数据库
     $user = $this->create($request->all());

     // 发送欢迎邮件
     邮件::至($user)->发送(new WelcomeEmail($user));

     // 登录用户
     $this->guard()->login($user);

     返回 $this->registered($request, $user) ?: redirect($this->redirectPath());
   }

运行此代码将提高应用程序的性能并增强用户体验。

6. 利用 JIT 编译器

PHP 是一种计算机机器和服务器端语言。它本身不理解 PHP 代码。通常,程序员使用编译器将代码编译成字节码并解释 PHP 代码。程序编译过程会影响 Laravel 应用程序的性能和用户体验。因此,Laravel 程序员可以使用 Zend Engine 自带的即时编译器,快速、一次性地编译代码。

关于后端开发的Django 和 Laravel你需要知道的一切,

7.压缩图像

如果您的 Laravel 应用程序开发包含许多图像,您应该将它们全部压缩以优化性能。有一些方法可以进行优化。但是,不同的图像需要不同的工具来保持图像的质量和分辨率。

如果您使用 Laravel Mix,建议您在编译图像时使用像ImageMin这样的 NPM 包。对于非常大的图像,先尝试TinyPNG压缩图像,然后使用 ImageMin 尽可能地压缩它。

8.类图优化

让你的 Laravel 应用程序保持紧凑并准备好轻松加载的一个聪明技巧应该是将所有包含的文件放在一起。当你想在你的应用程序中包含多个文件时,你只需要调用并拥有一个公共文件。

这样的举动将通过将多个文件包含在一个组合文件中以加载到您的应用程序中来加强您的 Laravel 应用程序。

9.使用缓存

通过将经常访问的数据存储在内存中,缓存可以显着提高网站或应用程序的速度。Laravel 提供了一种富有表现力且方便的方式来为您的应用程序配置缓存。Redis 和 Memcached 是两个流行的缓存后端,与 Laravel 配合得很好。

10.优化你的数据库查询

Laravel 的 Eloquent ORM 可以轻松编写高效的数据库查询,但重要的是要确保您的查询实际上针对您的数据库引擎进行了优化。尤其要小心使用 Eloquent 的“预先加载”功能,因为它通常会导致查询效率低下。延迟预加载通常是一种更好的方法。除此之外,只需注意您的应用程序正在执行的 SQL 查询,并确保它们尽可能高效。

11.预编译资产

通过将应用程序中所需的不同资产分开,开发人员将始终保持正确的开发环境。虽然这是一个很好的做法,但对于生产场景来说并不是强制性的。当然,Laravel 有内置的 artisan 命令可以帮助你解决这个问题。

2023 年 Laravel 性能优化终极指南
php artisn优化php artisn 配置:缓存php artisan 路由:缓存

Laravel 将使用上述命令自动分类您最常用的类并将它们保存在一个文件中。

12.资产捆绑

所有 Laravel 应用程序都伴随着工具 Laravel Mix,它可以有效地从 Webpack 构建您的应用程序 API。Laravel Mix 由常见的 CSS 和 Javascript 预处理器组成,可为您提供脚本、样式和其他编译。

例如,如果您想要为您的应用程序文件设置一些特定的样式格式,例如:

2023 年 Laravel 性能优化终极指南
混合风格([
 'public/css/vendor/normalize.css',
'公共/css/styles.css'], 'public/css/all.css');

使用 Laravel Mix,您的应用程序将从 normalize.css 和 style.css 自动创建一个 all.css 文件。因此,您可以将两个样式表合并到一个 all.css 文件中,而不是单独检索它们。这个 hack 将提高 Laravel 应用程序的性能。

13.资产缩小

正如 Burak Özdemir 所说,当您通过将资产编译到一个文件中来实施上述性能优化技巧时,您的文件会变得很大。要解决此问题,您可以使用以下命令:

2023 年 Laravel 性能优化终极指南
$ npm 运行生产

14.使用内容分发网络(CDN)

CDN 可以通过将资产缓存在世界各地的服务器上来帮助更快地交付资产。这对于图像或 JavaScript 库等大文件特别有用。例如,如果您的网站是从印度访问的,那么从印度的 CDN 服务器加载资产比从美国服务器加载资产要快。

15. 安装 Profiler 包 - Laravel Debugbar

Laravel Debugbar 包可用于分析您的应用程序并轻松识别瓶颈。该包提供了一种方便的方式来记录 SQL 查询、查看有关请求、响应等的信息。它可用于轻松识别应用程序中的瓶颈。为了使用 Laravel Debugbar 包,请使用 Composer 安装它:

2023 年 Laravel 性能优化终极指南
$ composer require barryvdh/laravel-debugbar --dev配置调试栏后,您可以通过调用 debugbar() 辅助函数在您的应用程序中访问它:debugbar()->addMessage('foo', 'bar');您还可以使用 Facade 访问调试栏:Debugbar::addMessage('foo', 'bar');

结论

我们希望您喜欢 Laravel 性能优化的 Laravel 性能检查表。您一定要进行 Laravel 性能监控分析,并自行找出哪些提示和技巧可以帮助您拥有出色的优化应用程序。我们拥有经验丰富的 Laravel 应用程序开发人员,他们向您保证响应速度最快的业务应用程序。

要改进 Laravel 应用程序的 Laravel 性能调优,请从我们这里聘请 Laravel 开发人员,以便在您方便的时候完成工作。

言鼎科技主做软件开发,微信小程序,网站开发,软件外包,手机APP开发。如有需要记得联系我们!

The End