PHP 8.4 正式发布!
PHP 团队宣布了 PHP 8.4.1 立即可用,这也意味着 PHP 8.4 正式发布。此版本标志着 PHP 语言的最新 minor 版本。PHP 8.4 带来了许多改进和新功能,如:属性钩子非对称属性可见性惰性(Lazy)对象特定于 PDO 驱动的子类BCMath 对象类型等待...有关 PHP 8.4.1 的源代码下载,请访问官方下载页面,Windows...
使用 Laravel 的 @once 指令优化 Blade 视图
高效管理 Blade 模板对于在 Laravel 应用中保持干净有序的视图至关重要。一个常见的挑战是确保某些代码段(如 JavaScript 代码段或样式)在页面中只包含一次,即使组件被多次呈现。Laravel 的 @once 指令为这个问题提供了一个简单而优雅的解决方案。理解 @once@once 指令允许你包装一个代码块,该代码块在渲染 HTML 中只应...
PHP 8.5: Curl: 新增 curl_multi_get_handles 函数
PHP 8.5 是当前活跃的开发分支,预计将于 2025 年 11 月发布。本系列文章将提供 PHP 8.5 中将会出现的一些新特性、更新及弃用进行预览。PHP 8.5 中的 Curl 扩展添加了一个名为 curl_multi_get_handles 的新函数,该函数从 CurlMultiHandle 对象返回一个 CurlHandle 对象数组。新曾的 c...
PHP 8.4: MBString: Unicode 字符数据库更新到版本 16
MBString 扩展包含从 Unicode 规范中提取的数据子集,用于其操作,比如将给定字符串转换为大写或小写,确定给定字符串的宽度(在某些东亚脚本中有用)等。在 PHP 8.3 中,MBString 扩展包含了 2022 年 9 月发布的 Unicode 14.0 标准的数据。在 PHP 8.4 中,Unicode 字符数据库(UCD)数据源从 14.0...
PHP 8.4: Intl: 新增 intltz_get_iana_id 函数和 IntlTimeZone::getCanonicalID 方法
在 PHP 8.4 中,Intl 扩展提供了一个名为 intltz_get_iana_id 的新函数以及一个 IntlTimeZone 类上的新的静态方法IntlTimeZone::getIanaID(),其返回 IANA 时区 ID。大多数情况下,其返回值与传递的时区标识符相同。然而,在给定的时区标识符被弃用或有替换的的时区标识符的情况下,这些新函数/方法...
Laravel 中通过密码确认操作来保护敏感操作
在任何 web 应用中,某些特定的操作都需要额外的安全层。Laravel 提供了一种通过密码确认来实现这一点的优雅方法。让我们探讨一下如何在关键操作之前设置密码确认路由来验证用户身份。密码确认概念密码确认通过要求用户在执行敏感操作之前重新输入密码来添加额外的安全层。这确保了即使用户离开他们的帐户登录,其他人也无法在不知道密码的情况下执行关键操作。实现密码确认...
优化 Eloquent:Laravel 中的访问器缓存和值对象
Laravel 的 Eloquent ORM 是一个处理数据库的强大工具,当你利用访问器缓存和值对象等功能时,它变得更加强大。让我们深入了解这些概念,看看它们如何增强 Laravel 应用的。通过 shouldCache() 缓存访问器结果在处理计算密集型访问器时,缓存可以显著提高性能。Laravel 提供了 shouldCache() 方法来轻松缓存访问器...
PHP 8.4: Curl: 新增 CURL_HTTP_VERSION_3 及 CURL_HTTP_VERSION_3ONLY 常量,以支持 HTTP/3
如果 Curl 扩展是用 HTTP/3 的必要依赖项编译的,则 PHP Curl 扩展能够发出 HTTP/3(也称为 QUIC)HTTP 请求。PHP 8.4 中的 Curl 扩展要求 libcurl 7.61.0 或更高版本。Curl HTTP/3 支持要求 libcurl 7.66.0 或更高版本。从 PHP 8.2 及更高版本开始,可以通过向 CURL...
使用 Stringable 属性简化 Laravel 模型
Laravel 的 AsStringable cast是一个强大的工具,可以显著增强在 Eloquent 模型中使用字符串属性的方式。通过将字符串属性转换为 Stringable 对象,你可以访问各种字符串操作方法,从而生成更清晰、更具表现力的代码。在模型中实现 AsStringable要使用 AsStringable cast,只需在模型的 $casts ...
PHP 的零依赖 SVG 图标库
maantje/charts 包是一个由 Jamie Schouten 开发的零依赖 SVG 图标库。它有一个直观的 API,你可以在 PHP 中直接使用来创建 SVG,而无需引入其他依赖项:use Maantje\Charts\Bar\Bar; use Maantje\Charts\Bar\Bars; use Maantje\Charts\Ch...