编程

Laravel 底层 - 策略模式

1609 2024-05-25 00:19:00

策略模式是一种行为设计模式,使得算法行为可以在运行时被选择。我们将在本文中讨论策略模式,以及 Laravel 如何在幕后使用它。在 Laravel 社区中,它通常被称为 Manager 模式。我在书中也遇到过它被标记为 “Builder” 模式的情况,我不同意这一点,稍后我将解释原因。简单地说,策略模式允许你根据条件切换实现(或算法)。在我们深入研究之前,需...

详情...
编程

[Laravel 扩展包]Laravel Honeypot(蜜罐):防止垃圾信息通过表单提交

1589 2024-05-23 18:44:00

当将表单添加到公共网站时,垃圾信息机器人可能会试图使用虚假值提交表单。幸运的是,这些机器人中的大多数都相当愚蠢。您可以通过在表单中添加一个不可见的字段来阻止其中的大多数操作,该字段在提交时永远不应该包含值。这样的字段被称为蜜罐。这些垃圾信息机器人只会填充所有字段,包括蜜罐。当提交的蜜罐字段已满时,此包将丢弃该请求。除此之外,这个包还检查提交表单所花的时间。这...

详情...
编程

面向接口编程!

1348 2024-05-21 05:50:00

当你对编程越来越认真时,你不可避免地会在视频、书籍或文章中遇到“面向接口编程”这个词语。一开始我们或许都不能真正理解其中含义。我们真的需要创建一个接口然后实现它。我们如何确定何时何地使用这些接口?每当看教程或读文章时,它们都会解释什么是接口,“这是一个没有实现的类”,但是为什么以及何时使用它呢。我们先来写一些代码当下 AI 如火如荼。让我们把它添加到我们的网...

详情...
编程

[Laravel 扩展包]Laravel Slower——使用 AI 优化 Eloquent 查询

1469 2024-05-21 04:13:00

Laravel Slower 包是为那些希望提高应用程序性能的Laravel开发人员设计的。此包识别慢速查询,并建议进行优化,如索引和其他改进。取决于你如何配置应用调度程序,你可以每天运行以下命令来分析和清理旧记录:php artisan slower:clean /*{days=15} Delete records older than 15 days....

详情...
编程

什么是 “N+1 Select 查询问题”?

1723 2024-05-20 03:06:00

本文将研究 ORM 框架中的 N+1 查询问题。我们将从问题的概念性概述开始。还将讨论理论上可能的解决方案以及如何在实践中实现这些解决方案。让我们从头开始,了解我们为什么会遇到这个问题。我们知道 ORM 可以解决将堆中的实体映射到关系数据库中的 schema 对象问题。在关系数据库中,我们可以有外键,它表示对外键表的引用。它允许我们在 R...

详情...
编程

线性流程 vs. 迭代流程

1620 2024-05-19 04:41:00

线性和迭代流程代表了软件开发中的两种核心方法,每种方法都有自己的一套原则和应用程序。本文中,我们将探讨线性流程和迭代流程之间的基本区别,这是软件开发中的两种关键方法。我们还将研究它们的独特特性和优势,并考虑何时使用每种方法来最好地管理我们的软件项目。线性流程,传统上被称为瀑布模型,代表了项目管理和软件开发的一种直接方法。这种方法的特点是通...

详情...
编程

Laravel 中将 CSV 文件作为集合读取

1353 2024-05-19 01:32:00

大型项经常需要在某个时刻从大型 CSV 文件导入数据。如果处理不当,很可能会导致内存问题。值得庆幸的是,您可以使用League 的 CS V包 方便地读取 CSV 文件,并将其作为 Laravel 的集合进行迭代。尤其是使用惰性集合。通过这种方式,可以将 CSV 文件作为集合读取,而无需将整个文件加载到内存中。首先,请使用 Composer 安装 leagu...

详情...
物联网

什么是工业 4.0?

2150 2024-05-18 15:50:00

工业 4.0 代表着第四次工业革命,数字、物理和生物技术融合在一起。它承诺通过自动化、数据交换和连接来改变制造业格局。在这篇文章中,我们将探讨工业 4.0,包括其组成部分、好处、挑战以及对全球制造业的影响。2.工业 4.0 是如何开始的?虽然传统制造业是我们当前经济结构的基础,但它仍在几个核心问题上挣扎——生产线僵化、资源使用效率低下和数据利用受限。...

详情...
编程

PHP 8.4: OpenSSL: OpenSSL 版本最低要求提升到 1.1.1

1790 2024-05-18 06:08:00

PHP OpenSSL 扩展为 PHP 提供了加密、身份验证、密钥交换、密码哈希和通用哈希功能。OpenSSL 扩展使用 OpenSSL 库来提供此功能。在 PHP 8.4 及更高版本上,构建 OpenSSL 扩展的最低要求从 1.0.1 增加到 1.1.1。该扩展也继续与 OpenSSL 兼容。请注意,OpenSSL 1.1.1(2018 年 9 月发布)...

详情...
编程

[Laravel 扩展包]DirectoryTree Authorization:Laravel 的原生角色和权限管理包

1605 2024-05-17 02:22:00

Steve Bauman 的 DirectoryTree Authorization 包是 Laravel 的一个简单的原生角色和权限管理系统。它使用 Laravel 的 Gate 和开箱即用的授权方法,并提供以下轻量级 API 来管理角色和权限:use DirectoryTree\Authorization\Permission; use Directo...

详情...