Laravel 中高效的用户时区处理
当今世界,web 应用经常用来满足来自不同时区的用户的需求。无论是事件调度、显示准确的时间戳还是管理用户交互,正确处理时区对于提供无缝的用户体验至关重要。然而,管理时区可能是一项复杂的任务,尤其是在处理不同地区、夏令时变化和不同用户偏好时。在构建应用时,几乎可以肯定地你会存储 DateTime 和其他与时间戳相关的数据。默认情况下,Laravel 在每个迁移...
[Laravel 扩展包]Laravel Firewall:防止 Laravel 应用遭受各种攻击
随着应用越来越受欢迎,它会成为各种攻击的目标。即使不那么流行,也有一些机器人会不断地在你的应用中寻找漏洞。因此,保护你的应用免受此类攻击始终是个好主意。如果你正在使用 Laravel,有一个名为 Laravel Firewall 的软件包可以帮助你做到这一点。这是 Laravel 的 WAF(Web 应用程序防火墙)。从本质上讲,它是一个包,可以帮助你保护 ...
Laravel 中验证特定时区
Laravel 提供了一个开箱即用的时区(timezone)验证规则,你用以用来验证给定的值是不是一个有效的时区。$request->validate([ 'timezone' => 'timezone', ]);不过,如果你想验证的是,给定的值是特定时区集合中的一个有效时区呢?比如,你想验证给定的值是美国可用的时区集合中的一个有效时区。...
Laravel 使用 Artisan 命令生成视图
Laravel 有多个 Artisan 命令,让你可以生成模板代码。比如,你可以通过 Artisan 命令生成控制器、模型,迁移文件。而从 Laravel 10.x 的发布开始,你可以使用 make:view Artisan 命令来生成视图文件了。我们来看看如何生成。要生成视图文件,你可以使用如下命令。php artisan make:view <vi...
PHP 8.4: OCI8 和 PDO-OCI 扩展从 PHP 核心移至 PECL
oci8 和 pdo_oci8 扩展提供了在 PHP 中使用 Oracle 数据库的功能。这些扩展依赖于商业供应商 Oracle 的专有库。这些扩展累积的未修复错误已有一段时间。此外,这些扩展需要付出相当大的努力才能将其资源对象迁移到类对象。考虑到这些扩展对第三方专有库的依赖,以及所需的维护工作,oci8 和 pdo_oci8 扩展不再是 PHP 核心的一部...
PHP 没有多继承的原因
多年来,PHP 作为一种语言已经有了很大的发展。从最初由 Rasmus Lerdorf 作为他的业余项目开始的一种简单的函数式脚本语言,到支持面向对象编程功能 PHP,已经走过了漫长的道路。尽管 PHP 在其每一个版本中都在实现和改进面向对象编程的功能,但有一个功能是缺失的,我一直想知道为什么这些年来 PHP 中没有这个功能,即多继承。PHP 不支持多继承有...
PHP 中使用组合优先于继承的原因
在面向对象编程中,类可以通过两种方式实现多态行为:“继承”和“组合”。继承是一种将对象或类建立在另一个对象或类的基础上并保留类似实现的机制。换句话说,使用继承,类从其父类(无论是直接的还是间接的)继承字段和方法。子类可以覆盖它继承的方法,也可以隐藏它继承的字段或方法。继承在类之间建立了一种“is-a”关系。例如,“汽车就是车辆”。意思是汽车“继承”了汽车的所...
[Laravel 扩展包]在 Laravel 中快速管理临时文件
我最近有一个队列作业,需要将文件临时下载到服务器,进行处理,最后清理临时文件。这在 PHP 中并不困难,你可能已经使用以下方式开始:file_put_contents('/tmp/' . $tmpFile, file_get_contents($video));要使之更能跨平台兼容,获取你可用使用 PHP 内置的 sys_get_temp_dir() 函数获...
本地存储 Window.localStorage 介绍
只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。localStorage 类似 sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留;而当页面会话结束——也就是说,当页面被关闭时,存储在 sessionStorage 的数...
查询构造器 whereAll() 和 whereAny() 方法添加到 Laravel 10.47
Laravel 团队发布了 v10.47,它向查询构造器添加了 whereAll 和 whereAny 方法,以及在 Collection sortByMany 方法使用排序 flag 的能力,等等。此次发布可能是 Laravel 11 于2024年3月12日(星期二)发布之前 10.x 分支的最后一次发布。Laravel 10 将继续接受漏洞修复,直到 2...