PHP技术周刊 2026年第17周
阅读原文: https://mp.weixin.qq.com/s/Pyk64dBRU7dRXl7_KGSbvQ
本周焦点:PHP 8.5 新特性深入解析、PHP Foundation 社区战略启动、Composer 修复命令注入漏洞、Spatie 编码规范开源为 AI Skills、Laravel 查询性能与测试实践探讨。
📖 文章
为什么需要投影——你的第一个读模型
事件溯源为你提供了系统中所有事件历史的完整记录,但它并没有提供查询这些数据的方法……
让你的 Laravel 测试变得毫无意义的常见错误
Laravel 测试刚开始感觉很直观——写几个测试,运行 php artisan test,看到绿色输出就继续了。但真相并不那么美好……
Twig 3.24.0 中的高级模板模式
本文将摒弃向视图传递非结构化数组的过时做法,转而利用 PHP 8.x Attribute 特性实现更先进的模板模式……
我研究了 etcd 代码库——它改变了我写 PHP 的方式
有一条常见建议:想写出更好的代码?去读好代码。听起来显而易见,却鲜有人践行。
PHP 与遗留代码:AI 时代的迁移与重构生存策略
当前市场上充斥着各种神经网络驱动的代码生成和优化工具,这些工具在代码……方面表现出色
你的 Laravel 应用可能因查询形态而慢,而非 Eloquent 本身
大多数 Laravel Eloquent 查询瓶颈并非 Eloquent 本身慢,而是 Eloquent 让昂贵的数据库操作变得……
🛠 工具
helhum/typo3-console
TYPO3 CMS 的可靠且强大的命令行界面。
yosymfony/resource-watcher
基于 Symfony Finder 的简单资源监视器。
buggregator/trap
简单而强大的 PHP 应用调试工具。
livewire/blaze
通过将 Blade 组件折叠到父模板中来优化其性能的工具。
matthiasnoback/symfony-config-test
用于测试与 Symfony Config Component 相关的用户类的库。
simplesamlphp/xml-common
包含处理 XML 结构的类和工具的库。
patrickschur/language-detection
PHP 语言检测库,从给定文本字符串中检测语言。
hammerstone/sidecar
Laravel 包,用于在主应用旁部署 Lambda 函数。
shipmonk/phpstan-baseline-per-identifier
将 PHPStan baseline 拆分为多个文件,每个错误标识符一个。同时支持 neon baseline 和 PHP baseline。
creativeorange/gravatar
Laravel Gravatar 包,用于获取 Gravatar 图片 URL 或检查图片是否存在。
📝 简讯
将社区反馈融入 PHP Foundation 战略(第一部分)
朋友们,我们有太多要聊的。我加入 PHP Foundation 已有几周,很多人问我的愿景和目标……
Spatie 将编码规范开源为 AI Skills
Spatie 团队通过 spatie/guidelines-skills 将内部编码规范开源为可复用的 AI Skills。Skills 是可复用的指令……
laravel-pdf 2.6.0 支持直接将 PDF 附加到 Mailable
Spatie 的 laravel-pdf v2.6.0 为 PdfBuilder 添加了 Attachable 契约支持,可将生成的 PDF 直接传给 mailable 的 attach() 方法……
Composer 2.9.6 修复两个 Perforce 命令注入漏洞
Composer 发布 2.9.6 和 2.2.27 LTS 版本,修复 Perforce VCS 驱动中的两个命令注入漏洞:CVE-2026-40261 和 CVE-……
2026年4月13–19日 Symfony 一周回顾 #1007
本周 Symfony UX 发布了 2.35 维护版本和新 3.0 主版本,移除了所有废弃特性并更新了 PHP ……
SymfonyDay Montreal 2026 议程公布!
期待已久的时刻终于到来。经过数周的提案评审,我们很高兴宣布官方议程……
🎙 播客
Laravel News:Rust 语言服务器、JSON Alexander 与 Cloud CLI
Jake 和 Michael 讨论了最新的 Laravel 发布、教程和社区动态。
The Stack Overflow:我们仍然需要开发者社区
Ryan 邀请 Major League Hacking 联合创始人兼 CEO Mike Swift 聊聊对开发者社区的持续需求……
Software Engineering Radio 716:Martin Kleppmann 谈 Local-First 软件
剑桥大学副教授、《Designing Data-Intensive Applications》作者 Martin Kleppmann 深入探讨……
Shoptalk Show 711:Oh My Zsh 从何而来?以及 2026 年使用 Rails
Oh My Zsh 维护者 Robby Russell 做客节目,聊聊好 Zsh 插件的标准和 Oh My Zsh 插件……
WP Builds 464:为什么 Brian Gardner 押注 Block Themes
Nathan 采访 Brian Gardner,谈论他在 WordPress 主题领域的先驱工作、Genesis Framework 的兴衰与影响……
PHP Architect 第22期:Sara Golemon 谈 Git Worktrees
Sara Golemon 再次做客节目(上次是第2期),深入探讨 Git Worktrees 这一强大但鲜少使用的 Git 特性……
Mostly Technical 128:LaraProm
Ian 和 Aaron 讨论 Solo 终于就绪——其 MCP 能力为何吸引人,Laracon US 上的 LaraProm,以及 Ian 的困境……
Syntax:评审和吐槽你的项目
Scott 和 Wes 深入审查一批社区提交的项目,从 JSON 工具、CSS 编辑器到 AI 代理、视图过渡等应有尽有……
📰 阅读
对 Spatie guidelines agent skills 的个人看法
我在 Laravel-news 上看到关于 Spatie guidelines 的帖子。别人的规范总是学习新东西的机会,我想……
Laravel belongsTo 与 belongsToMany:掌握从属与多对多关系
在上一篇关于 hasMany 的文章中,我们从父级视角看了 Chef 拥有多个 Recipe 的关系。但关系是双向的……
为什么 100k RPS 会压垮 PHP 而非 Nginx
单台 PHP 服务器上跑 100k RPS。有人称之为高负载,PHP 则称之为最后一次请求。来看数学分析。
2026 年请停止使用这些糟糕的 PHP 实践
一位资深开发者坦诚分享那些正在悄悄毁掉你代码库的 PHP 习惯,以及应该怎么做。
容器化 Moodle(第二部分):构建镜像与容器
Docker 需要适应过程,本文将进行一些基础操作来建立信心。
Breeze 之外:值得了解的社区 Laravel 启动套件
Laravel 官方启动套件 Breeze、Jetstream 等都不错,文档完善、维护良好。但社区……
PHP 8.5:深入解析新特性与 RFC
本文不是泛泛概述,而是以更深入、更技术的视角审视即将到来的变更,附带实际代码示例和分析……
PHP 依赖注入:Laravel 的魔法 vs Symfony 的显式
使用第三方天气 API 集成为例,实际对比两种依赖管理理念的差异。
——微信「右耳朵猫AI」
