laravel 10.8于4月下旬发布,来看看它的变化。
更简单的Process::pipe()写法
Process::pipe()是在10.7里引入的。
/*
假设test.txt有如下内容:
Hello, world
foo
*/
// 新的写法:
$result = Process::pipe([
'cat test.txt',
'grep -i "foo"',
]);
$result->output(); // "foo"
// 在Laravel 10.7里的写法
$pipe = Process::pipe(function ($pipe) {
$pipe->command('cat test.txt'),
$pipe->command('grep -i "foo"'),
});
$pipe->run()->output(); // "foo"
基于类的"After" 验证规则
之前,我们写after验证规则时,一般是基于function的,倾向于这样写:
<?php
Validator::make(/* .. */)->after(function ($validator) use (/* ... */): void {
if (/* ... */) {
$validator->errors()->add(/* ... */);
}
if (/* ... */) {
$validator->errors()->add(/* ... */);
}
if (/* ... */) {
$validator->errors()->add(/* ... */);
}
});
现在呢,我们也可以把具体的逻辑写到专门的AfterRule类中:
Validator::make(/* .. */)->after([
new AfterRuleOne(/* ... */),
new AfterRuleTwo(/* ... */),
function ($validator) use (/* ... */): void => {
// ...
},
});
如果是在request中,也可以在after方法中声明:
class UserRequest
{
protected function rules(): array
{
return [
//
];
}
protected function after(MyService $service): array
{
return [
new AfterRule($this->value, $service),
// ...
];
}
}
调用constrained()外键约束时可以指定index索引名字
// 10.8之前
$table->foreignIdFor(KnowledgeBaseResource::class)->nullable();
$table
->foreign('knowledge_base_resource_id', 'my_foreign_index')
->references('id')
->on('knowledge_base_resources')
->constrained()
->nullOnDelete();
// 现在
$table->foreignIdFor(KnowledgeBaseResource::class)
->nullable()
->constrained(null, null, 'my_foreign_index')
->nullOnDelete();
广播事件时添加了一个maxExceptions属性
可以在event上添加maxExceptions
属性,来声明最多发生多少异常就认为事件失败,或者说在事件失败之前允许抛出多少异常。
该篇是我们《Laravel 9 & 10 优雅实战入门(第三版)》这一课程的扩展文章,该课程历时6年,历经三版,是咱们国内最优雅、最正宗的laravel入门兼实战课程。
- 课程首发于2016年,当时是laravel 5.2的版本;
- 第二版发布于2018年,当时针对laravel5.7-8.*的学习;
- 第三版发布于2022年9月份,针对laravel 9.x、10.x、11.x的学习,所以如果你参加现在的课程,就相当于将来即使到laravel 11,也能继续学习,不需要额外购买,一口气锁定了laravel 9-11的学习。
** 第三版的一些升级与优势:**
- 课程内容完全重制,整体升级到了laravel 9,最近也会陆续加上laravel 10的内容
- 为大家提供了pilishen自定义的一键docker开发环境,让大家不再为环境搭建麻烦,马上我们的环境也将同时支持laravel9和10
- 使用了最新的vite前端编译环境,介绍了其原理,并进行了各种配置和优化
- 内容讲解上更加灵活、个性化,基于实战开发的需要,以问题解决为线索,用到哪里讲哪里,不再受传统的章节结构限制
- 单集内容时长基本是第二版的2倍,添加了更多的细节和原理介绍,能帮助不同层次的同学获得各自所需的知识
- 将原来第二套的前半部分内容,加到了第一套内,让同学们对一些中高级的知识点有所接触和了解
- 适当放慢了语速,方便同学们跟着敲代码,减少空格暂停的时间,基础好的同学可自行加速播放
- 增加了对各种常见错误、异常的演示和讲解,以提高同学们在实际开发中的问题解决能力
如果你总觉得没有体验到laravel的优雅,那么这套教程必看; 国内最好的入门进阶教程,以最规范简洁的方式让你真正体验laravel的优雅,日常逻辑两三行代码解决,而且全程贯穿OOP思想,高屋建瓴,让你一开始就养成高手的思维。
感兴趣的同学可以到我们的课程公开群做客咨询:109256050(公开课@pilishen.com) 已经购买过的同学,可以加入课程专门的付费群:584207847(pilishen.com教程网)