Repositories 及其真实意图
由于使用了 Repository 模式,你已经替换了多少次底层数据库实现?这就是为什么,在这篇博文中,我想进一步澄清这个完全被误解的软件设计模式,以及为什么反对使用它的第一个论点(上面的问题)实际上是微不足道的,几乎无关紧要。定义 Repository首先,让我们从定义 Repository 实际是什么开始。Repository 模式在 PoEAA 中定义如...
设计模式之备忘录(Memento)模式
又名: 快照模式(Snapshot)意图备忘录(Memento)模式是一种行为设计模式,允许你在不暴露实现细节的情况下,保存及恢复对象的前一种状态。问题描述想象一下,你正在创建一个文本编辑器应用。除了简单的文本编辑外,编辑器还可以格式化文本、插入内联图像等。在某个时刻,你决定让用户撤消对文本执行的任何操作。多年来,这一功能变得如此普遍,以至于现在人们希望每个...
新的 Laravel 11 应用包括健康检查端点
作为 Laravel 11 发布的一部分,新应用包括一个健康 /up 端点。该路由是在新的 bootstrap/app.php 文件中通过传递健康相关参数来定义的,该参数默认在 Laravel 11 框架中定义:
PHP 8.4: Mbstring: 新增 mb_trim、mb_ltrim 和 mb_rtrim 函数
PHP 8.4 为现有的 trim、ltrim 和 rtrim 函数添加了等效的 mb_ 函数。trim/ltrim/rtrim 函数在字符串的开头和结尾都去掉空白字符。默认情况下,这会去掉空空格( )、制表符(\t)、LF(\n)、CR(\r)、NUL字节(\0)和垂直制表符(\v)字符。新的 mb_trim、mb_ltrim 和 mb_rtrim 函数支...
Laravel 11 开始支持立即加载限制
随着 Laravel 11 于 2024 年 2 月发布,Laravel 将原生支持对每个父级立即加载的结果数量进行限制。We've integrated the code behind @staudenmeir's "eager load limit" package into Laravel 11.That means in Laravel 11 thi...
探索 Laravel 11 的中间件
Laravel 11将于2024年“第一季度”发布。我正在启动一个新项目,因为离发布日期太近了,我想我会看看新的主要版本会有什么不同。我记得 6 个月前读过 Laravel News 的一篇文章,关于 Http Kernel 是如何消失的,我对此不以为然。当我使用 laravel new project -dev 创建项目时,我对项目规模如此之小感到非常惊讶...
Laravel 11: once() 记忆化辅助函数
once() 函数最初的灵感来自 Taylor Otwell 的这条推文,Spatie 将其制作成一个包,现在已进入Laravel 11 中的 Laravel 框架的核心。这个辅助函数确保无论调用对象方法多少次,都能获得相同的值。当您有一些代码想要确保只运行一次时,once函数非常有用。让我们使用新的 Laravel 11 make:class Artisa...
Laravel 11: 深入了解精简的目录结构
我想你会喜欢下周推出的 Laravel 11 应用程序中的新框架!新人会欣赏极简主义,有经验的开发人员升级不会喷到破坏性的变化。你不必更改Laravel 10 应用结构即可升级到 Laravel 11。如果你想跟随并进行实验,你可以同时创建一个 Laravel 10 和 Laravel 11 项目。我们使用以下命令来执行此操作# Update the ins...
Filament: 2024 年有什么值得期待
2023年对 Filament 来说是不可思议的一年,这种势头一直持续到 2024 年!Filament 核心团队在过去的几个月里花了很多时间来制定我们2024 年的目标,我们很高兴能在这里与您分享!此列表最初是在 Filament 2024 Kickoff 活动期间分享的,因此,如果您想成为...
设计模式之单例(Singleton)模式
意图单例(Singleton)模式一种创建型的设计模式,可以确保类只有一个实例,同时为该实例提供全局访问点。问题描述单例模式同时解决了两个问题,违反了单一职责原则。确保一个类只有一个实例。为什么有人要控制一个类由多少各实例呢?最常见的原因是控制对某些共享资源的访问,例如数据库或文件。它的工作原理如下:想象一下你创建了一个对象,但过了一段时间后决定创建一个新对...