Whisp — 一个 PHP SSH 服务器
WhispPHP 是一个纯 PHP 的 SSH 服务器。它是创建 PHP SSH 应用的最简单方式,允许你通过极度简化的方式运行 Laravel 命令行应用。如果你正在启动一个新的应用,你可以使用 Ashley 提供的现有项目模板,也可以使用 Composer 将 Whisp 添加到现有项目中:composer require whispphp/whisp然...
PHP Fiber: PHP 如何最终向异步编程靠拢
多年来,PHP 一直是 web 开发的首选语言,为从小型博客网站到脸书等大型平台(至少在早期)的一切提供动力。但是,尽管 PHP 发展迅速,但直到现在,它在异步编程方面一直有点保守。随着 PHP Fiber 在 PHP 8.1 中的出现(以及 PHP 8.4 中急切的调整),PHP 似乎终于拥抱了并发的。那么,让我们深入了解一下 PHP Fiber:它是什么...
[Laravel 扩展包]PHP DevTools 控制台
多年来,前端开发人员一直享受着基于浏览器的开发工具的奢侈,可以实时检查、调试和测试他们的 HTML、CSS 和 JavaScript。然而,由于 PHP 的服务器端特性,PHP 开发人员,特别是那些使用 Laravel 的开发人员,并没有得到同样的便利。由于 Tony Lea 创建了一个新的Chrome扩展,这种情况即将改变。此扩展利用了 Spatie 的 ...
PHP 8.4: CSV: 必须提供 $escape 参数
PHP 提供了内置的 CSV 功能,允许读取和写入 CSV 文件。此实现存在一些有问题的转义行为,正在逐步淘汰。CSV 功能使用三个字符来分隔/separate(默认为,)、包围/enclose(默认为")和转义/escape(目前默认为\)。通常情况下,如果数据字段中包含 enclose 字符,则通过重复该字符来进行转义。然而,PHP 的实现允许通过指定转...
如何为 Laravel 项目生成文档
在软件开发中,编写代码只是一个开始。真正使卓越项目与众不同的一点是其文档的质量。清晰、组织良好的文档不仅增强了开发人员/项目利益相关者之间的协作,还为最终用户提供了宝贵的指导,使产品更易于访问和使用。对于 Laravel 项目,无论你是在构建一个简单的应用、API 还是一个面向用户的产品,出色的文档都是必不可少的,幸运的是,有很多工具可以帮助你做到这一点。本...
探索 PHP yield 关键词
想象一个场景,我们要编写一个命令,将文件迭代存入 S3 bucket 并对其逐个进行处理。我们可以使用 listObjectsV2 方法调用 S3 API 罗列 bucket 中的内容:...
[Laravel 扩展包]Laravel Rewind - Eloquent 的版本控制包
Laravel Rewind 是 Jared Cannon 创建的为 Eloquent 模型提供的一个强大而高效的版本控制包。此包存储模型数据的部分差异和完整快照的组合。Rewind 将自动确定当前版本、可用快照和目标之间的最短路径:
PHP 版本统计:2025-01
本文是关于整个社区 PHP 版本使用情况的统计。这些数据或许并不能百分百准确地将整个 PHP 社区的生态现状,但可以准确地表示 packagist (PHP 包)生态的情况。使用统计让我们先看看今天使用的 PHP 版本的百分比。我省略了所有使用率不超过 1% 的版本...
Rector v2.0 发布
Rector 是一个强大的工具,可以通过建立健壮的编程实践标准来帮助提高 PHP 项目的代码质量。它还可以用于将遗留项目从 PHP 5.3 安全地迁移到 PHP 8.4,是持续重构代码并保持高代码质量的 CI 过程的完美补充。Rector v2 现已发布,虽然该版本侧重于性能改进(速度提高了约 10-15%),但该项目背后的团队也设法添加了一些新功能。在此版...
PHP 8.4:#[Deprecated] 注解
PHP 8.4 引入了一个 名为 #[Deprecated] 的新注解,它可以用于标记 PHP 函数、类方法或类常量为已弃用。当使用带有 #[Deprecated] 属性的已弃用函数、类或方法时,PHP 会自动发出弃用消息。每次调用该函数/方法/常量时都会触发这条消息。在引入此属性之前,通常通过使用 trigger_error 函数发出弃用消息和/或在 /*...