Laravel 13已发布,要求PHP 8.3+,支持PHP属性、AI SDK、JSON:API资源、语义搜索及Cache::touch()方法。

根据Laravel团队的说法:
在这个发布周期中,我们关注的焦点大多是尽量减少突破性变化。相反,我们致力于全年持续推进生活质量改进,这些改进措施不会破坏现有应用。
PHP 8.3 现在需要
Laravel 13 会放弃对 PHP 8.2 的支持,现在需要 PHP 8.3 或更高版本。
对 PHP 属性的一流支持
面向开发人员的最大改进是在框架的多个部分引入了原生PHP属性。
立即学习“PHP免费学习笔记(深入)”;
// EXAMPLE MODEL #[Table('users', key: 'user_id', keyType: 'string', incrementing: false)]#[Hidden(['password'])]#[Fillable(['name', 'email'])]class User extends Model {}现在可以使用属性定义内联的行为,而不是通过类属性来配置行为:
- 模型
- 工作
- 控制台命令
- 以及更多(15个以上地点)
optional完全可选且向后兼容。
Laravel人工智能软件开发工具包
Laravel13 推出了第一方 Laravel AI SDK,为文本生成、工具调用代理、嵌入、音频、图像以及矢量存储集成提供了统一的 API。
JSON:API 资源
Laravel 现在包含第一方的 JSON:API 资源,使得返回符合 JSON:API 规范的响应变得简单易行。
JSON:API 资源处理资源对象序列化、关系包含、稀疏字段、链接以及符合 JSON:API 的响应头。
语义/矢量搜索
Laravel 13 支持原生向量查询,支持嵌入工作流以及相关 API,涵盖搜索、查询和人工智能 SDK。
这些功能使得使用 PostgreSQL + pgvector 构建基于人工智能的搜索体验变得简单,包括针对直接从字符串生成的嵌入的相似性搜索。
例如,您可以直接从查询构建器运行语义相似性搜索:
$documents = DB::table('documents') ->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley') ->limit(10) ->get();缓存:touch()
PR #55954 添加Cache::touch()扩展缓存项TTL的方法,无需取取或重新存储该值:
// Extend by secondsCache::touch('user_session:123', 3600); // Extend with a DateTimeCache::touch('analytics_data', now()->addHours(6)); // Extend indefinitelyCache::touch('report_cache', null);以前,延长TTL需要get随后是put这意味着将缓存值不必要地传输到导线上。Cache::touch()跳过这个——Redis 使用一个EXPIRE命令,Memcached 使用TOUCH数据库驱动程序会单次发出UPDATE。
该方法返回true关于成功和false如果密钥不存在。它适用于所有缓存驱动程序:数组、APC、数据库、DynamoDB、文件、Memached、Memoized、Null和Redis。


















