업그레이드 지침
ㅠㅠ
업그레이드 가이드
- 5.7 5.8.0으로 업그레이드
매우 큰 영향을 미치는 변경 사항
- 초 단위의 캐시 TTL
- 캐시 잠금 보안 개선
- 마크다운 파일 경로 변경
- Nexmo/Slack 알림 채널 변경
중간 변경 사항이
에 영향을 미침- 컨테이너 빌더 및 태그 서비스
- SQLite 버전 제약
- 헬퍼를 문자열 및 배열의 클래스로 대체
- 더 이상 사용되지 않는 지연된 서비스 공급자
- PSR-16 사양 준수
- 불규칙성 개선
- 로 끝나는 복수형 모델 이름 중간 테이블 모델은 자동 증가 ID 속성을 추가합니다
- Pheanstalk 4.0 라이브러리 지원
Laravel 5.7에서 5.8로 업데이트
예상 업그레이드 시간: 1시간
참고: 가능한 모든 변경 사항을 문서화하려고 노력합니다. 대부분의 주요 변경 사항은 프레임워크 내부에서 발생하므로 이러한 변경 사항 중 일부만 애플리케이션에 영향을 미칠 수 있습니다.
종속성 업데이트
composer.json
에서 laravel/framework
종속성을 5.8.*
로 업데이트하세요. composer.json
中,将 laravel/framework
依赖项更新为 5.8.*
。
接下来,检查应用程序中已安装的第三方包是否支持 Laravel 5.8,并检查已安装的版本是否正确。
应用契约
environment
方法
影响可能性:非常低
Illuminate/Contracts/Foundation/Application
类 environment
方法的签名已修改。如果在您的应用程序中重写了这个方法,您应该更新此方法的签名:
/** * 获取或检查当前应用程序的环境 * * @param string|array $environments * @return string|bool */public function environment(...$environments);
新添加的方法
影响可能性:非常低
以下新添加方法 bootstrapPath
, configPath
, databasePath
, environmentPath
, resourcePath
, storagePath
, resolveProvider
, bootstrapWith
, configurationIsCached
, detectEnvironment
, environmentFile
, environmentFilePath
, getCachedConfigPath
, getCachedRoutesPath
, getLocale
, getNamespace
, getProviders
, hasBeenBootstrapped
, loadDeferredProviders
, loadEnvironmentFrom
, routesAreCached
, setLocale
, shouldSkipMiddleware
, terminate
将会被添加到 Illuminate/Contracts/Foundation/Application
中.
如果你实现了这个接口,你应该将这些方法添加到实现类中。
认证
重置密码通知路由参数
影响可能性:低
当用户点击重置密码链接时,Laravel 使用 route
助手生成 URL ,以创建指向以 password.reset
命名的路由,当使用 Laravel 5.7 的时候,token 将会被传递到不带显式名称的 route
助手,比如:
route('password.reset', $token);
当你使用 Laravel 5.8 时,token 作为显式参数传递给 route
助手:
route('password.reset', ['token' => $token]);
因此,如果你要定义自己的 password.reset
환경
방법
영향 가능성: 매우 낮음
Illuminate/Contracts/Foundation/Application
클래스 환경
메소드의 서명이 수정되었습니다. 애플리케이션에서 이 메서드가 재정의된 경우 이 메서드의 서명을 업데이트해야 합니다. // Laravel 5.7 - 存储数据30分钟
Cache::put('foo', 'bar', 30);// Laravel 5.8 - 存储数据30秒
Cache::put('foo', 'bar', 30);// Laravel 5.7 / 5.8 - 存储数据30秒
Cache::put('foo', 'bar', now()->addSeconds(30));
새로 추가된 메서드 영향 가능성: 매우 낮음
🎜🎜새로 추가된 다음 메서드bootstrapPath code>, < code>configPath
, databasePath
, environmentPath
, resourcePath
, storagePath
, resolveProvider code>, bootstrapWith
, configurationIsCached
, DetectEnvironment
, environmentFile
, environmentFilePath
, getCachedConfigPath
, getCachedRoutesPath
, getLocale
, getNamespace
, getProviders
, hasBeenBootstrapped
, loadDeferredProviders
, loadEnvironmentFrom
, routesAreCached
, setLocale
, shouldSkipMiddleware
, 종료
가 Illuminate/Contracts/Foundation/Application
에 추가됩니다. 🎜🎜이 인터페이스를 구현하는 경우 구현 클래스에 이러한 메서드를 추가해야 합니다. 🎜🎜인증🎜🎜비밀번호 재설정 알림 경로 매개변수 🎜🎜🎜영향 가능성: 낮음 🎜🎜🎜사용자가 비밀번호 재설정 링크를 클릭하면 Laravel은 route
도우미를 사용하여 링크를 생성하는 URL을 생성합니다. < code>password.reset
이름이 지정된 경로인 경우 Laravel 5.7을 사용할 때 토큰은 다음과 같이 명시적인 이름 없이 route
도우미에 전달됩니다: 🎜Cache::lock('foo', 10)->get(function () { // 锁将会被安全的自动释放});🎜Laravel에서 사용하는 경우 5.8에서는 토큰이
route
도우미에 명시적 매개변수로 전달됩니다. 🎜if (($lock = Cache::lock('foo', 10))->get()) { // 执行任务… $lock->release();}🎜 따라서 자신만의
password.reset
경로를 정의하려면 해당 URI가 다음과 같아야 합니다. 토큰 매개변수를 포함합니다. 🎜🎜기본 비밀번호 길이 변경🎜🎜🎜잠재적 영향: 낮음 🎜🎜🎜비밀번호를 선택하거나 재설정할 때 필요한 비밀번호 길이가 8자 이상으로 변경되었습니다. 🎜🎜캐시🎜🎜TTL(초)🎜🎜🎜잠재적 영향: 매우 높음🎜🎜데이터를 저장할 때 더 세분화된 만료 시간을 허용하기 위해 캐시된 데이터 수명이 분에서 초로 변경되었습니다. IlluminateCacheRepository
클래스 및 해당 확장 클래스에 대한 put
, putMany
, add
, remember
이 업데이트는 모든 캐시 메모리의 setDefaultCacheTime
메소드와 put
메소드에 의해 완료됩니다. 자세한 내용은 관련 PR을 참고하시기 바랍니다. IlluminateCacheRepository
类和它的扩展类的 put
, putMany
, add
, remember
和 setDefaultCacheTime
方法,以及所有缓存存储器的 put
方法都完成了此更新。详情请看 相关的 PR 。
如果要向这些方法中的任何一个传递整数,请更新代码以确保保留在缓存中的数据传递的数值是秒。另外,你可以传递一个 DateTime
实例指示数据何时到期:
// 在控制器中…$podcast = Podcast::find(1); if (($lock = Cache::lock('foo', 120))->get()) { ProcessPodcast::dispatch($podcast, $lock->owner());}// 在进程广播队列中… Cache::restoreLock('foo', $this->owner)->release();
{提示} 此更改使 Laravel 缓存系统完全符合 PSR-16 缓存库标准 。
遵循 PSR-16
影响可能性:中等
除了以上返回值有变化之外,本次升级还更新了 IlluminateCacheRepository
类中的 put
, putMany
和 add
方法的 TTL 参数,使之更符合 PSR-16 规范。新特性提供了一个默认的 null
,所以如果不指定 TTL 值,那么缓存将会永久存储不会过期。此外,如果缓存项的 TTL 为 0 或者更小,那么将会被清除。参阅 相关的 PR 获取更多信息。
KeyWritten
事件基于这些变动 也进行了更新 。
锁安全性改善
影响可能性:高
在 Laravel 5.7 以及 Laravel 更早的版本的中,一些缓存驱动提供的 “原子锁” 特性,可能由于一些意外行为导致锁被提前释放。
例如: 客户端 A 获取了一个 10 秒过期的锁 foo
。客户端 A 实际上需要耗费 20 秒来完成它的任务。在客户端 A 任务执行期间,锁被缓存系统自动释放。之后 客户端 B 获取到锁 foo
。最终 客户端 A 完成了它的任务并释放掉锁 foo
,但是无意中释放了 客户端 B 所持有的锁。这时候 客户端 C 又可以获取到锁。
为了缓解这种情况,现在使用嵌入的「范围令牌」生成锁,这样可以确保在正常情况下,只有锁的持有者才能释放锁。
如果你正在使用 Cache::lock()->get(Closure)
方法使用锁,则不需要进行任何更改:
Cache::lock('foo')->forceRelease();
但是,如果要手动调用, Cache::lock()->release()
,则必须更新代码以维护锁的实例。然后,在完成任务后,可以在同一个锁实例上调用 release
DateTime
인스턴스를 전달할 수 있습니다: 🎜/** * Get the first item by the given key value pair. * * @param string $key * @param mixed $operator * @param mixed $value * @return mixed */public function firstWhere($key, $operator = null, $value = null);
🎜{Tip} 이러한 변경으로 인해 Laravel 캐시 시스템은 PSR-16 캐시 라이브러리 표준과 완전히 호환됩니다. 🎜
PSR-16 준수
🎜영향 가능성: 중간🎜🎜위 반환 값의 변경 사항 외에도 이번 업그레이드에서는 <코드도 업데이트됩니다. > 클래스의put
, putMany
및 add
메소드에 대한 IlluminateCacheRepository TTL 매개변수를 사용하여 PSR-16과 더욱 호환되게 만듭니다. 사양. 새로운 기능은 기본 null
을 제공하므로 TTL 값이 지정되지 않으면 캐시가 영구적으로 저장되고 만료되지 않습니다. 또한 TTL이 0 이하인 경우 캐시 항목이 지워집니다. 자세한 내용은 관련 PR을 참조하세요. 🎜🎜이러한 변경 사항에 따라 KeyWritten
이벤트도 업데이트되었습니다. 🎜잠금 보안 개선
🎜영향 가능성: 높음🎜🎜Laravel 5.7 및 이전 버전의 Laravel에서는 일부 캐시 드라이버에서 제공하는 "원자 잠금" 기능이 잠금이 발생할 수 있습니다. 예상치 못한 행동으로 인해 조기에 출시될 수 있습니다. 🎜🎜예: 클라이언트 A는 10초 안에 만료되는 잠금foo
를 획득합니다. 클라이언트 A는 실제로 작업을 완료하는 데 20초가 걸립니다. 클라이언트 A 작업을 실행하는 동안 캐시 시스템에 의해 잠금이 자동으로 해제됩니다. 그 후 클라이언트 B는 foo
잠금을 획득합니다. 결국 클라이언트 A는 작업을 완료하고 foo
잠금을 해제하지만, 클라이언트 B가 보유한 잠금을 실수로 해제합니다. 이때 클라이언트 C는 잠금을 다시 얻을 수 있습니다. 🎜🎜이 상황을 완화하기 위해 이제 내장된 "범위 토큰"을 사용하여 잠금이 생성됩니다. 이는 정상적인 상황에서 잠금 보유자만 잠금을 해제할 수 있도록 보장합니다. 🎜🎜Cache::lock()->get(Closure)
메서드를 사용하여 잠금을 사용하는 경우에는 변경할 필요가 없습니다. 🎜$value = DB::table('users')->value('options->language'); dump($value); // Laravel 5.7... '"en"' // Laravel 5.8... 'en'🎜그러나 수동으로 호출하려는 경우에는
Cache::lock()->release()
, 잠금 인스턴스를 유지하려면 코드를 업데이트해야 합니다. 그런 다음 작업을 완료한 후 동일한 잠금 인스턴스에서 release
메서드를 호출할 수 있습니다. 예: 🎜// Laravel 5.7... App\Feedback.php -> feedback (正确的复数形式) App\UserFeedback.php -> user_feedbacks (错误的复数形式) // Laravel 5.8 App\Feedback.php -> feedback (正确的复数形式) App\UserFeedback.php -> user_feedback (正确的复数形式)
때때로 한 프로세스에서 잠금을 획득하고 다른 프로세스에서 해제하고 싶을 수도 있습니다. 예를 들어 웹 요청 중에 잠금을 획득하고 해당 요청에 의해 트리거된 대기 중인 작업이 종료되면 잠금을 해제하려고 할 수 있습니다. 이 경우 작업이 지정된 토큰으로 잠금을 다시 인스턴스화할 수 있도록 잠금 범위 "소유자 토큰"을 대기열에 있는 작업에 전달해야 합니다.
/** * 与模型关联的数据表名称。 * * @var string */protected $table = 'user_feedbacks';
현재 소유자를 존중하지 않고 이 작업을 수행하려면 잠그면 다음 forceRelease
메소드를 사용할 수 있습니다: forceRelease
方法:
/** * 标识 ID 是否自增 * * @var bool */public $incrementing = true;
Repository
和 Store
契约
影响可能性:非常低
为了完全符合 PSR-16
的要求,IlluminateContractsCacheRepository
契约的 put
和 forever
方法的返回值以及 IlluminateContractsCacheStore
契约的 put
, putMany
和 forever
方法 已更改 从 void
到 bool
。
集合
firstWhere
方法
影响可能性:非常低
firstWhere
方法参数 已更改 匹配 where
方法的签名。如果要重写此方法,则应更新方法的参数来匹配其父级:
protected $casts = ['deleted_at' => 'string'];
终端
Kernel
契约
影响可能性:非常低
terminate
方法 已经添加到 Illuminate/Contracts/Console/Kernel
契约中。如果你实现了这个接口,则应该将这个方法添加到实现类中。
容器
生成器 & 标记服务
影响可能性:中等
容器的 tagged
方法使用 PHP 生成器通过给定的标记惰性地实例化服务。由于这种改变,tagged
方法返回 iterable
类型,而不是 数组
。如果你这个方法使用了类型提示的返回值,则应确保将类型提示也更改为 iterable
类型。
另外,不能再通过数组偏移值直接访问标记服务 ,比如 $container->tagged('foo')[0]
。
resolve
方法
影响可能性:非常低
resolve
方法 接收一个新布尔参数,该参数指示事件在对象实例化期间是否应触发 / 执行(解析回调)。如果你重写了这个方法,你必须更新方法签名以匹配父方法。
addContextualBinding
方法
影响可能性:非常低
IlluminateContractsContainerContainer
契约增加了 addContextualBinding
/** * 将给定的 Http 异常转换为 Http 响应。 * * @参数 \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface $e * @返回 \Symfony\Component\HttpFoundation\Response */protected function renderHttpException(HttpExceptionInterface $e);
Repository
및 Store
Contract
잠재적 영향 : 매우 낮음🎜🎜 PSR-16
의 요구 사항을 완전히 준수하기 위해 IlluminateContractsCacheRepository
계약의 put
및 forever
메소드와 IlluminateContractsCacheStore
put, putMany
및 forever
메소드의 반환 값 > 계약이 void
에서 bool
로 변경되었습니다. 🎜수집
firstWhere
방법
🎜영향 가능성: 매우 낮음🎜🎜firstWhere
방법 where
메소드의 서명과 일치하도록 매개변수가 변경되었습니다. 이 메서드를 재정의하려면 상위 메서드와 일치하도록 메서드의 매개변수를 업데이트해야 합니다. 🎜'employee' => [ 'name' => 'Taylor Otwell',],/** * 转换给定的值. * * @param string $key * @param mixed $value * @return mixed */protected function transform($key, $value){ dump($key); // 'employee.name' (Laravel 5.8) dump($key); // 'name' (Laravel 5.7)}
터미널
커널
계약
🎜효과 가능성: 매우 낮음🎜🎜terminate
메소드가 Illuminate/Contracts/Console/Kernel
계약에 추가되었습니다. 이 인터페이스를 구현하는 경우 구현 클래스에 이 메서드를 추가해야 합니다. 🎜컨테이너
생성기 및 태그 서비스
🎜영향 가능성: 중간🎜🎜Container의tagged
메소드는 PHP를 사용하여 생성됩니다. 공급자 지정된 태그를 사용하여 서비스를 지연 인스턴스화합니다. 이러한 변경으로 인해 tagged
메서드는 배열
대신 iterable
유형을 반환합니다. 메서드가 유형 힌트 반환 값을 사용하는 경우 유형 힌트도 반복 가능
유형으로 변경해야 합니다. 🎜🎜또한, $container->tagged('foo')[0]
와 같은 배열 오프셋 값을 통해 더 이상 태그 서비스에 직접 접근할 수 없습니다. 🎜resolve
방법
🎜잠재적 영향: 매우 낮음🎜🎜resolve
방법은 다음 여부를 나타내는 새로운 부울 매개변수를 받습니다. 이벤트는 객체 인스턴스화(해결 콜백) 중에 발생/실행되어야 합니다. 이 메서드를 재정의하는 경우 상위 메서드와 일치하도록 메서드 시그니처를 업데이트해야 합니다. 🎜addContextualBinding
메서드
🎜영향 가능성: 매우 낮음🎜🎜IlluminateContractsContainerContainer
계약은 addContextualBinding
을 추가합니다. 코드> 방법. 이 인터페이스를 구현하려면 구현에 이 메서드를 추가해야 합니다. 🎜tagged
메서드 tagged
方法
影响可能性:低tagged
方法现在 改为 返回 iterable
类型而不是 array
类型。如果你的代码参数有类型提示,找到所有 tagged
方法提示 array
类型的地方,将类型提示改为 iterable
类型。
flush
方法
影响可能性:非常低
IlluminateContractsContainerContainer
契约增加了 flush
方法。如果要实现此接口,则应将此方法加到你的实现中。
数据库
未被引号包围的 MySQL JSON 值
影响可能性:低
在使用 MySQL 和 MariaDB 的时候,Query 构造器返回的 JSON 值将不会使用引号包围。其他数据库将和这里的行为保持一致:
protected function setUp(): voidprotected function tearDown(): void
因此,不再支持或不再需要 ->>
操作符了。
SQLite
影响可能性:中等
从 Laravel 5.8 开始, 最早版本 SQLite 支持 一直到 SQLite 3.7.11。如果你使用的是更早之前的 SQLite 版本,你应该升级 (推荐升级到 SQLite 3.8.8+)。
Eloquent
模型命名中的不规则复数结尾
影响可能性:中等
从 Laravel 5.8 起,含有不规则复数形式结尾的复合名称模型命名 现在可以正确的进行复数化.
/** * 获取已验证的属性和值。 * * @return array */public function validated();
如果你的模型名称没有正确的使用复数名称,你在模型中定义 $table
属性之后还是可以继续使用它的:
composer require laravel/nexmo-notification-channel composer require laravel/slack-notification-channel
带有递增 ID 的自定义中继模型
如果你用一个自定义的中继模型定义了多对多的关系,而且这个中继模型拥有一个自增的主键,你应当确保这个自定义中继模型类中定义了一个 incrementing
属性其值为 true
:
loadCount
方法
影响可能性:低
基础类 IlluminateDatabaseEloquentModel
中添加了 loadCount
方法。如果你的应用中也定义了 loadCount
方法,可能会和 Eloquent 中的相冲突。
originalIsEquivalent
方法
影响可能性:非常低
IlluminateDatabaseEloquentConcernsHasAttributes
trait 中的 originalIsEquivalent
成员方法从 protected
改变为 public
。
deleted_at
영향 가능성: 낮음tagged
메서드는 이제 배열< 대신
iterable
유형을 반환합니다. /코드>를 입력하세요. 코드 매개변수에 유형 힌트가 있는 경우 array
유형의 tagged
메서드 힌트를 모두 찾아 유형 힌트를 iterable
유형으로 변경하세요.
flush
메서드 🎜🎜🎜영향 가능성: 매우 낮음🎜🎜🎜IlluminateContractsContainerContainer
계약은 flush
메서드를 추가합니다. 이 인터페이스를 구현하려면 구현에 이 메서드를 추가해야 합니다. 🎜데이터베이스
🎜MySQL JSON 값은 따옴표로 묶이지 않습니다🎜🎜🎜영향 가능성: 낮음🎜🎜🎜MySQL 및 MariaDB를 사용할 때 쿼리 생성자가 반환한 JSON 값은 따옴표로 묶이지 않습니다. . 다른 데이터베이스는 다음과 같이 일관되게 작동합니다. 🎜rrreee🎜 따라서->>
연산자는 더 이상 지원되거나 필요하지 않습니다. 🎜🎜SQLite🎜🎜🎜영향 가능성: 보통 🎜🎜🎜 Laravel 5.8부터 SQLite의 초기 버전은 SQLite 3.7.11까지 지원됩니다. 이전 버전의 SQLite를 사용하는 경우 업그레이드해야 합니다(SQLite 3.8.8+로 업그레이드하는 것이 좋습니다). 🎜Eloquent
🎜모델 이름 지정 시 불규칙 복수형 어미🎜🎜🎜영향 가능성: 보통🎜🎜🎜Laravel 5.8부터 불규칙 복수형 어미가 있는 복합 이름의 모델 이름 지정이 이제 올바르게 복수화가 작동합니다.🎜rrreee🎜 모델 이름이 복수형 이름을 올바르게 사용하지 않으면 모델에서$table
속성을 정의한 후 계속 사용할 수 있습니다. 🎜rrreee🎜증가하는 ID로 자동 릴레이 모델 정의🎜🎜 사용자 정의 릴레이 모델과 다대다 관계가 있고 릴레이 모델에 자동 증가 기본 키가 있는 경우 사용자 정의 릴레이 모델 클래스가 값이 인 incrementing
속성을 정의하는지 확인해야 합니다. >true
: 🎜rrreee🎜loadCount
메서드 🎜🎜🎜영향 가능성: 낮음 🎜🎜🎜Base 클래스 IlluminateDatabaseEloquentModel
loadCount 메서드를 추가했습니다. >. 애플리케이션이 loadCount
메소드도 정의하는 경우 Eloquent의 메소드와 충돌할 수 있습니다. 🎜🎜originalIsEquivalent
메서드 🎜🎜🎜영향 가능성: 매우 낮음 🎜🎜🎜IlluminateDatabaseEloquentConcernsHasAttributes
IlluminateDatabaseEloquentConcernsHasAttributes
특성의 멤버 메서드가 protected에서 제거되었습니다.
가 공개
로 변경되었습니다. 🎜🎜deleted_at
속성의 자동 소프트 삭제 변환🎜🎜🎜잠재적 영향: 낮음🎜🎜Eloquent 모델이 IlluminateDatabaseEloquentSoftDeletes
특성을 사용할 때 deleted_at
멤버 속성은 이제 자동으로 Carbon
인스턴스로 변환됩니다. 멤버 속성에 대한 사용자 정의 접근자를 작성하거나 이를 casts
속성에 수동으로 추가하여 이 동작을 재정의할 수 있습니다: IlluminateDatabaseEloquentSoftDeletes
trait 时 deleted_at
成员属性 现将会自动转换 成为一个 Carbon
实例。你可以重写这个行为,通过为该成员属性编写你的自定义 accessor 或者手动将它添加到 casts
属性中:
BelongsTo
的 getForeignKey
方法
影响可能性:低
BelongsTo
关联关系中的 getForeignKey
和 getQualifiedForeignKey
方法已分别重命名为 getForeignKeyName
和 getQualifiedForeignKeyName
,使得方法名和在 Laravel 提供的其他关联关系中保持一致。
事件
fire
方法
影响可能性:低
Illuminate/Events/Dispatcher
类中的 fire
方法 (在 Larevel 5.4 中不赞成使用) 已经被 移除 了。
你应当使用它的替代方法 dispatch
。
异常处理器
ExceptionHandler
契约
影响可能性:低
IlluminateContractsDebugExceptionHandler
契约中新增了 shouldReport
方法。 现在当你实现异常处理器的接口时,你需要同时实现此方法。
renderHttpException
方法
影响可能性:低
IlluminateFoundationExceptionsHandler
类中 renderHttpException
方法的签名 有改动 。现在如果你在异常处理器中重写此方法,应当修改方法的签名以和其父类保持一致:
Facades
Facade 服务解析
影响可能性:低
getFacadeAccessor
方法现在可以 只返回代表服务容器标识的字符串 ,之前该方法会返回一个对象实例。
邮件
Markdown 文件路径更改
影响可能性:高
如果你已经使用 vendor:publish
命令发布了 Laravel 的 Markdown 邮件组件,你需要将 /resources/views/vendor/mail/markdown
路径重命名为 text
。
并且 markdownComponentPaths
方法 已被重命名 为 textComponentPaths
。如果你要重写这个方法,你应该更新方法名,使之与其父类一致。
PendingMail
rrreeeBelongsTo
's code>getForeignKey code> 메서드
BelongsTo
's code>getForeignKey code> 메서드 영향 가능성: 낮음
🎜BelongsTo
관계의 getForeignKey
및 getQualifiedForeignKey
메서드 이름이 getForeignKeyName
및 getQualifiedForeignKeyName
은 각각 메소드 이름이 Laravel에서 제공하는 다른 관계와 일치하도록 합니다. 🎜
이벤트
fire
메서드 🎜🎜🎜충격 확률: 낮음🎜🎜🎜Illuminate/Events/Dispatcher
클래스 < code>fire 메소드(Larevel 5.4에서는 더 이상 사용되지 않음)가 제거되었습니다.
대체 dispatch
를 사용해야 합니다. 🎜예외 처리기
ExceptionHandler
계약 🎜🎜🎜잠재적 영향: 낮음🎜🎜🎜IlluminateContractsDebugExceptionHandler
계약에 새로운 가 추가됨 shouldReport< /코드> 메소드. 이제 예외 처리기 인터페이스를 구현할 때 이 메서드도 구현해야 합니다. 🎜renderHttpException
메서드 🎜🎜🎜영향 가능성: 낮음🎜🎜🎜IlluminateFoundationExceptionsHandler
의 renderHttpException
메서드 서명 IlluminateFoundationExceptionsHandler
클래스가 변경되었습니다. 이제 예외 처리기에서 이 메서드를 재정의하는 경우 상위 클래스와 일관되도록 메서드의 시그니처를 수정해야 합니다. 🎜rrreeeFacades
Facade 서비스 해결 🎜🎜🎜잠재적 영향: 낮음 🎜🎜🎜이제 getFacadeAccessor
메소드는 객체 인스턴스를 반환하는 대신 서비스 컨테이너 ID를 나타내는 문자열만 반환할 수 있습니다. 🎜메일
마크다운 파일 경로 변경
🎜🎜영향 가능성: 높음🎜🎜🎜vendor:publish
를 사용하여 게시한 경우 명령 Laravel의 Markdown 메일 구성 요소를 사용하려면 /resources/views/vendor/mail/markdown
경로의 이름을 text
로 바꿔야 합니다. 🎜🎜그리고 markdownComponentPaths
메서드의 이름이 textComponentPaths
로 변경되었습니다. 이 메서드를 재정의하는 경우 상위 클래스와 일치하도록 메서드 이름을 업데이트해야 합니다. 🎜PendingMail
클래스 메소드 매개변수 변경🎜🎜🎜영향 가능성: 매우 낮음🎜🎜IlluminateMailPendingMail
의
send
, sendNow
, queue
, later
및 클래스 >fill
메소드가 IlluminateMailMailable
인스턴스 대신 IlluminateContractsMailMailable
인스턴스를 매개변수로 허용하도록 변경되었습니다. 메서드를 재정의하려면 해당 매개 변수를 상위 클래스와 일치하도록 업데이트해야 합니다. IlluminateMailPendingMail
类中的 send
, sendNow
, queue
, later
和 fill
方法 已被更改 为需接收一个 IlluminateContractsMailMailable
实例作为参数,而不是 IlluminateMailMailable
实例。如果你要重写其中的方法,你需要更新其形参,和其父类保持一致。
队列
Pheanstalk 4.0
影响可能性:中
Laravel 5.8 提供了支持 ~4.0
发布版本的 Pheanstalk 队列。如果你正在应用中使用 Pheanstalk 库,请通过 Composer 升级你的库到 ~4.0
发布版本。
Job
契约
影响可能性:非常低
isReleased
, hasFailed
和 markAsFailed
方法 已被加入到 IlluminateContractsQueueJob
契约中 。如果你正在实现这个 interface ,你应该添加这些方法到你的实现代码中。
Job::failed
& FailingJob
类
影响可能性:非常低
在 Laravel 5.7 中,当一个队列任务失败后,队列 worker 将执行 FailingJob::handle
方法。在 Laravel 5.8 中,FailingJob
类中的逻辑已被迁移到了 fail
方法中,该方法就定义在这个任务类中。正因如此, fail
方法被纳入了 IlluminateContractsQueueJob
契约。
IlluminateQueueJobsJob
基类包含了 fail
的实现,在常规的应用里不需要改任何代码。然而,如果你正在搭建自定义的队列驱动,起了一个任务类,该任务类 没有 继承由 Laravel 提供的任务基类,你应该在你自定义的任务类中手动实现 fail
方法。作为实现的参考,你可以查阅 Laravel 的任务基类。
这个改变允许定制队列驱动,从而在对任务删除过程获得更多的控制。
Redis Blocking Pop
影响可能性:非常低
现在使用 Redis 队列驱动的 「blocking pop」特性是安全的。在之前,如果 Redis 服务或者 worker 掉线的同时取出任务,可能造成队列中的任务丢失(小概率事件)。 为了让 blocking pops 变得安全,将给每一个 Laravel 队列创建一个新的带有 :notify
后缀的 Redis list 。
请求
TransformsRequest
中间件
影响可能性:低
现在,当请求输入是一个数组时, IlluminateFoundationHttpMiddlewareTransformsRequest
中间件的 transform
方法将接收到「全限定」 请求输入的 key :
rrreee路由
UrlGenerator
큐
Pheanstalk 4.0
영향 가능성: 중간
🎜Laravel 5.8은 ~4.0
릴리스 버전을 지원하는 Pheanstalk 대기열을 제공합니다. 애플리케이션에서 Pheanstalk 라이브러리를 사용하는 경우 Composer를 통해 라이브러리를 ~4.0
릴리스 버전으로 업그레이드하세요. 🎜작업
계약 🎜🎜🎜영향 가능성: 매우 낮음🎜🎜🎜isReleased
, hasFailed
및 markAsFailed
IlluminateContractsQueueJob
계약에 메서드가 추가되었습니다. 이 인터페이스를 구현하는 경우 구현 코드에 이러한 메서드를 추가해야 합니다. 🎜Job::failed
및 FailingJob
클래스 🎜🎜🎜영향 가능성: 매우 낮음🎜🎜🎜Laravel 5.7에서는 대기열 작업이 실패하면 대기열 작업자는 FailingJob::handle
메서드를 실행합니다. Laravel 5.8에서는 FailingJob
클래스의 로직이 이 작업 클래스에 정의된 fail
메서드로 마이그레이션되었습니다. 이로 인해 fail
메소드가 IlluminateContractsQueueJob
계약에 포함됩니다. 🎜🎜IlluminateQueueJobsJob
기본 클래스에는 fail
구현이 포함되어 있으며 일반 애플리케이션에서는 코드를 변경할 필요가 없습니다. 그러나 사용자 정의 큐 드라이버를 구축하고 Laravel에서 제공하는 작업 기본 클래스를 상속하지 않는 작업 클래스를 생성하는 경우 사용자 정의 작업 클래스에서 fail<을 수동으로 구현해야 합니다. 구현에 대한 참고 자료로 Laravel의 작업 기반 클래스를 확인할 수 있습니다. 🎜🎜이 변경을 통해 대기열 드라이버를 사용자 정의하면 작업 삭제 프로세스를 더 효과적으로 제어할 수 있습니다. 🎜Redis Blocking Pop🎜🎜🎜영향 가능성: 매우 낮음🎜🎜🎜이제 Redis 큐 드라이버의 "blocking pop" 기능을 사용해도 안전합니다. 이전에는 Redis 서비스 또는 작업자의 연결이 끊어지고 작업이 동시에 제거되면 대기열의 작업이 손실될 수 있었습니다(작은 확률 이벤트). 차단 팝업을 안전하게 만들기 위해 각 Laravel 대기열에 대해 :notify
접미사가 붙은 새로운 Redis 목록이 생성됩니다. 🎜요청
TransformsRequest
미들웨어 🎜🎜🎜영향 가능성: 낮음 🎜🎜🎜이제 요청 입력이 배열인 경우 IlluminateFoundationHttpMiddlewareTransformsRequest
미들웨어의 transform
메소드는 "정규화된" 요청 입력 키를 수신합니다: 🎜rrreeeRoute
UrlGenerator
프로토콜🎜🎜🎜 영향: 매우 낮음🎜🎜
이전
메서드가 IlluminateContractsRoutingUrlGenerator
계약에 추가되었습니다. 이 인터페이스를 호출하려면 구현에 이 메서드를 추가해야 합니다. previous
方法 已经添加到 IlluminateContractsRoutingUrlGenerator
contract 中。如果要调用这个接口,你应该将这个方法添加到你的实现中。
Illuminate/Routing/UrlGenerator
中的 cachedSchema
特性
影响可能性:非常低
Illuminate/Routing/UrlGenerator
中的 $cachedSchema
属性 (在 Laravel 5.7 中已被弃用) 已更改为 $cachedScheme
。
Sessions
StartSession
中间件
影响可能性:非常低
Session 的持久性逻辑已 从 terminate()
方法移动到 handle()
方法。 如果你要重写其中的方法, 则应该更新它们以反映这些更改。
Support
优先使用字符串和数组类而不是辅助函数
影响可能性:中等
所有的 array_*
and str_*
全局辅助函数 都被废弃。你需要直接使用 IlluminateSupportArr
和 IlluminateSupportStr
提供的方法。
这个调整的影响被标记为中等,因为这些辅助函数被转移到新的 laravel/helpers 扩展包中,以便更好地向后兼容。
延迟的服务提供者
影响可能性:中等
服务提供程序的用于指示是否延迟提供程序的 defer
布尔属性已经被废弃。现在如果要将服务提供者标记为延迟的需要通过实现 IlluminateContractsSupportDeferrableProvider
契约来完成。
测试
PHPUnit 8
影响可能性:可选
默认情况下, Laravel 5.8 使用 PHPUnit 7.。不过, 你可以升级到 PHPUnit 8,但是这需要 PHP >= 7.2。更多细节请阅读 PHPUnit 8 版本声明。
setUp
和 tearDown
方法现在要求返回 void 类型:
rrreee验证
Validator
契约
影响可能性:非常低
IlluminateContractsValidationValidator
中 新增了 validated
方法:
rrreee如果你调用了这个接口,需要添加此方法的实现。
ValidatesAttributes
特性
影响可能性:非常低
IlluminateValidationConcernsValidatesAttributes
特性中的 parseTable
、 getQueryColumn
和 requireParameterCount
方法可见性从 protected
调整为了 public
。
DatabasePresenceVerifier
类
影响可能性:非常低
IlluminateValidationDatabasePresenceVerifier
类的 table
方法可见性从 protected
调整为了 public
cachedSchema
Illuminate/Routing/UrlGenerator의 기능
잠재적 영향: 매우 낮음🎜🎜 < Illuminate/Routing/UrlGenerator
(Laravel 5.7에서는 더 이상 사용되지 않음)의 code>$cachedSchema
속성이 $cachedScheme
으로 변경되었습니다. 🎜세션
StartSession
미들웨어
🎜잠재적 영향: 매우 낮음🎜🎜Session의 지속성 논리가 < 코드에서 변경되었습니다. >terminate()
메서드가 handle()
메서드로 이동되었습니다. 그 안에 있는 메서드를 재정의하는 경우 변경 사항을 반영하도록 업데이트해야 합니다. 🎜지원
도우미 함수보다 문자열 및 배열 클래스 선호
🎜잠재적 영향: 중간🎜🎜모두 array_*< /code> 및 < code>str_*
전역 도우미 함수는 더 이상 사용되지 않습니다. IlluminateSupportArr
및 IlluminateSupportStr
에서 제공하는 메서드를 직접 사용해야 합니다. 🎜🎜이 조정의 영향은 더 나은 이전 버전과의 호환성을 위해 이러한 도우미 기능이 새로운 laravel/helpers 확장 패키지로 이동되었기 때문에 중간으로 표시됩니다. 🎜지연된 서비스 제공자
🎜영향 가능성: 중간🎜🎜제공자를 연기할지 여부를 나타내는 서비스 제공자의 defer
부울 속성은 이미 포기되었습니다. 이제 IlluminateContractsSupportDeferrableProvider
계약을 구현하여 서비스 제공자를 지연된 것으로 표시해야 합니다. 🎜테스트
PHPUnit 8
🎜영향 가능성: 선택 사항🎜🎜기본적으로 Laravel 5.8은 PHPUnit 7을 사용합니다. 그러나 PHPUnit 8로 업그레이드할 수 있지만 이를 위해서는 PHP >= 7.2가 필요합니다. 자세한 내용은 PHPUnit 8 릴리스 발표를 읽어보세요. 🎜🎜setUp
및 tearDown
메소드에는 이제 반환 유형 void가 필요합니다: 🎜rrreeeValidation
Validator
Contract< /code> h4>🎜영향 가능성: 매우 낮음🎜🎜IlluminateContractsValidationValidator
validated
메서드 추가: 🎜rrreee🎜이 인터페이스를 호출하면 이 메서드의 구현을 추가해야 합니다. 🎜ValidatesAttributes
속성
🎜잠재적 영향: 매우 낮음🎜🎜IlluminateValidationConcernsValidatesAttributes
parseTable
속성 코드>, getQueryColumn
및 requireParameterCount
메서드의 protected
에서 public
으로 조정되었습니다. 🎜DatabasePresenceVerifier
클래스
🎜잠재적 영향: 매우 낮음🎜🎜IlluminateValidationDatabasePresenceVerifier
클래스의 테이블
메서드 공개 상태가 보호됨
에서 공개
로 조정되었습니다. 🎜Validator
클래스
ExceptionHandler
계약 🎜🎜🎜잠재적 영향: 낮음🎜🎜🎜IlluminateContractsDebugExceptionHandler
계약에 새로운 가 추가됨 shouldReport< /코드> 메소드. 이제 예외 처리기 인터페이스를 구현할 때 이 메서드도 구현해야 합니다. 🎜renderHttpException
메서드 🎜🎜🎜영향 가능성: 낮음🎜🎜🎜IlluminateFoundationExceptionsHandler
의 renderHttpException
메서드 서명 IlluminateFoundationExceptionsHandler
클래스가 변경되었습니다. 이제 예외 처리기에서 이 메서드를 재정의하는 경우 상위 클래스와 일관되도록 메서드의 시그니처를 수정해야 합니다. 🎜rrreeeFacades
Facade 서비스 해결 🎜🎜🎜잠재적 영향: 낮음 🎜🎜🎜이제 getFacadeAccessor
메소드는 객체 인스턴스를 반환하는 대신 서비스 컨테이너 ID를 나타내는 문자열만 반환할 수 있습니다. 🎜메일
마크다운 파일 경로 변경
🎜🎜영향 가능성: 높음🎜🎜🎜vendor:publish
를 사용하여 게시한 경우 명령 Laravel의 Markdown 메일 구성 요소를 사용하려면 /resources/views/vendor/mail/markdown
경로의 이름을 text
로 바꿔야 합니다. 🎜🎜그리고 markdownComponentPaths
메서드의 이름이 textComponentPaths
로 변경되었습니다. 이 메서드를 재정의하는 경우 상위 클래스와 일치하도록 메서드 이름을 업데이트해야 합니다. 🎜PendingMail
클래스 메소드 매개변수 변경🎜🎜🎜영향 가능성: 매우 낮음🎜🎜IlluminateMailPendingMail
의
send
, sendNow
, queue
, later
및 클래스 >fill
메소드가 IlluminateMailMailable
인스턴스 대신 IlluminateContractsMailMailable
인스턴스를 매개변수로 허용하도록 변경되었습니다. 메서드를 재정의하려면 해당 매개 변수를 상위 클래스와 일치하도록 업데이트해야 합니다. IlluminateMailPendingMail
类中的 send
, sendNow
, queue
, later
和 fill
方法 已被更改 为需接收一个 IlluminateContractsMailMailable
实例作为参数,而不是 IlluminateMailMailable
实例。如果你要重写其中的方法,你需要更新其形参,和其父类保持一致。
队列
Pheanstalk 4.0
影响可能性:中
Laravel 5.8 提供了支持 ~4.0
发布版本的 Pheanstalk 队列。如果你正在应用中使用 Pheanstalk 库,请通过 Composer 升级你的库到 ~4.0
发布版本。
Job
契约
影响可能性:非常低
isReleased
, hasFailed
和 markAsFailed
方法 已被加入到 IlluminateContractsQueueJob
契约中 。如果你正在实现这个 interface ,你应该添加这些方法到你的实现代码中。
Job::failed
& FailingJob
类
影响可能性:非常低
在 Laravel 5.7 中,当一个队列任务失败后,队列 worker 将执行 FailingJob::handle
方法。在 Laravel 5.8 中,FailingJob
类中的逻辑已被迁移到了 fail
方法中,该方法就定义在这个任务类中。正因如此, fail
方法被纳入了 IlluminateContractsQueueJob
契约。
IlluminateQueueJobsJob
基类包含了 fail
的实现,在常规的应用里不需要改任何代码。然而,如果你正在搭建自定义的队列驱动,起了一个任务类,该任务类 没有 继承由 Laravel 提供的任务基类,你应该在你自定义的任务类中手动实现 fail
方法。作为实现的参考,你可以查阅 Laravel 的任务基类。
这个改变允许定制队列驱动,从而在对任务删除过程获得更多的控制。
Redis Blocking Pop
影响可能性:非常低
现在使用 Redis 队列驱动的 「blocking pop」特性是安全的。在之前,如果 Redis 服务或者 worker 掉线的同时取出任务,可能造成队列中的任务丢失(小概率事件)。 为了让 blocking pops 变得安全,将给每一个 Laravel 队列创建一个新的带有 :notify
后缀的 Redis list 。
请求
TransformsRequest
中间件
影响可能性:低
现在,当请求输入是一个数组时, IlluminateFoundationHttpMiddlewareTransformsRequest
中间件的 transform
方法将接收到「全限定」 请求输入的 key :
rrreee路由
UrlGenerator
큐
Pheanstalk 4.0
영향 가능성: 중간
🎜Laravel 5.8은 ~4.0
릴리스 버전을 지원하는 Pheanstalk 대기열을 제공합니다. 애플리케이션에서 Pheanstalk 라이브러리를 사용하는 경우 Composer를 통해 라이브러리를 ~4.0
릴리스 버전으로 업그레이드하세요. 🎜작업
계약 🎜🎜🎜영향 가능성: 매우 낮음🎜🎜🎜isReleased
, hasFailed
및 markAsFailed
IlluminateContractsQueueJob
계약에 메서드가 추가되었습니다. 이 인터페이스를 구현하는 경우 구현 코드에 이러한 메서드를 추가해야 합니다. 🎜Job::failed
및 FailingJob
클래스 🎜🎜🎜영향 가능성: 매우 낮음🎜🎜🎜Laravel 5.7에서는 대기열 작업이 실패하면 대기열 작업자는 FailingJob::handle
메서드를 실행합니다. Laravel 5.8에서는 FailingJob
클래스의 로직이 이 작업 클래스에 정의된 fail
메서드로 마이그레이션되었습니다. 이로 인해 fail
메소드가 IlluminateContractsQueueJob
계약에 포함됩니다. 🎜🎜IlluminateQueueJobsJob
기본 클래스에는 fail
구현이 포함되어 있으며 일반 애플리케이션에서는 코드를 변경할 필요가 없습니다. 그러나 사용자 정의 큐 드라이버를 구축하고 Laravel에서 제공하는 작업 기본 클래스를 상속하지 않는 작업 클래스를 생성하는 경우 사용자 정의 작업 클래스에서 fail<을 수동으로 구현해야 합니다. 구현에 대한 참고 자료로 Laravel의 작업 기반 클래스를 확인할 수 있습니다. 🎜🎜이 변경을 통해 대기열 드라이버를 사용자 정의하면 작업 삭제 프로세스를 더 효과적으로 제어할 수 있습니다. 🎜Redis Blocking Pop🎜🎜🎜영향 가능성: 매우 낮음🎜🎜🎜이제 Redis 큐 드라이버의 "blocking pop" 기능을 사용해도 안전합니다. 이전에는 Redis 서비스 또는 작업자의 연결이 끊어지고 작업이 동시에 제거되면 대기열의 작업이 손실될 수 있었습니다(작은 확률 이벤트). 차단 팝업을 안전하게 만들기 위해 각 Laravel 대기열에 대해 :notify
접미사가 붙은 새로운 Redis 목록이 생성됩니다. 🎜요청
TransformsRequest
미들웨어 🎜🎜🎜영향 가능성: 낮음 🎜🎜🎜이제 요청 입력이 배열인 경우 IlluminateFoundationHttpMiddlewareTransformsRequest
미들웨어의 transform
메소드는 "정규화된" 요청 입력 키를 수신합니다: 🎜rrreeeRoute
UrlGenerator
프로토콜🎜🎜🎜 영향: 매우 낮음🎜🎜
이전
메서드가 IlluminateContractsRoutingUrlGenerator
계약에 추가되었습니다. 이 인터페이스를 호출하려면 구현에 이 메서드를 추가해야 합니다. previous
方法 已经添加到 IlluminateContractsRoutingUrlGenerator
contract 中。如果要调用这个接口,你应该将这个方法添加到你的实现中。
Illuminate/Routing/UrlGenerator
中的 cachedSchema
特性
影响可能性:非常低
Illuminate/Routing/UrlGenerator
中的 $cachedSchema
属性 (在 Laravel 5.7 中已被弃用) 已更改为 $cachedScheme
。
Sessions
StartSession
中间件
影响可能性:非常低
Session 的持久性逻辑已 从 terminate()
方法移动到 handle()
方法。 如果你要重写其中的方法, 则应该更新它们以反映这些更改。
Support
优先使用字符串和数组类而不是辅助函数
影响可能性:中等
所有的 array_*
and str_*
全局辅助函数 都被废弃。你需要直接使用 IlluminateSupportArr
和 IlluminateSupportStr
提供的方法。
这个调整的影响被标记为中等,因为这些辅助函数被转移到新的 laravel/helpers 扩展包中,以便更好地向后兼容。
延迟的服务提供者
影响可能性:中等
服务提供程序的用于指示是否延迟提供程序的 defer
布尔属性已经被废弃。现在如果要将服务提供者标记为延迟的需要通过实现 IlluminateContractsSupportDeferrableProvider
契约来完成。
测试
PHPUnit 8
影响可能性:可选
默认情况下, Laravel 5.8 使用 PHPUnit 7.。不过, 你可以升级到 PHPUnit 8,但是这需要 PHP >= 7.2。更多细节请阅读 PHPUnit 8 版本声明。
setUp
和 tearDown
方法现在要求返回 void 类型:
rrreee验证
Validator
契约
影响可能性:非常低
IlluminateContractsValidationValidator
中 新增了 validated
方法:
rrreee如果你调用了这个接口,需要添加此方法的实现。
ValidatesAttributes
特性
影响可能性:非常低
IlluminateValidationConcernsValidatesAttributes
特性中的 parseTable
、 getQueryColumn
和 requireParameterCount
方法可见性从 protected
调整为了 public
。
DatabasePresenceVerifier
类
影响可能性:非常低
IlluminateValidationDatabasePresenceVerifier
类的 table
方法可见性从 protected
调整为了 public
cachedSchema
Illuminate/Routing/UrlGenerator의 기능
잠재적 영향: 매우 낮음🎜🎜 < Illuminate/Routing/UrlGenerator
(Laravel 5.7에서는 더 이상 사용되지 않음)의 code>$cachedSchema
속성이 $cachedScheme
으로 변경되었습니다. 🎜세션
StartSession
미들웨어
🎜잠재적 영향: 매우 낮음🎜🎜Session의 지속성 논리가 < 코드에서 변경되었습니다. >terminate()
메서드가 handle()
메서드로 이동되었습니다. 그 안에 있는 메서드를 재정의하는 경우 변경 사항을 반영하도록 업데이트해야 합니다. 🎜지원
도우미 함수보다 문자열 및 배열 클래스 선호
🎜잠재적 영향: 중간🎜🎜모두array_*< /code> 및 < code>str_*
전역 도우미 함수는 더 이상 사용되지 않습니다. IlluminateSupportArr
및 IlluminateSupportStr
에서 제공하는 메서드를 직접 사용해야 합니다. 🎜🎜이 조정의 영향은 더 나은 이전 버전과의 호환성을 위해 이러한 도우미 기능이 새로운 laravel/helpers 확장 패키지로 이동되었기 때문에 중간으로 표시됩니다. 🎜지연된 서비스 제공자
🎜영향 가능성: 중간🎜🎜제공자를 연기할지 여부를 나타내는 서비스 제공자의defer
부울 속성은 이미 포기되었습니다. 이제 IlluminateContractsSupportDeferrableProvider
계약을 구현하여 서비스 제공자를 지연된 것으로 표시해야 합니다. 🎜테스트
PHPUnit 8
🎜영향 가능성: 선택 사항🎜🎜기본적으로 Laravel 5.8은 PHPUnit 7을 사용합니다. 그러나 PHPUnit 8로 업그레이드할 수 있지만 이를 위해서는 PHP >= 7.2가 필요합니다. 자세한 내용은 PHPUnit 8 릴리스 발표를 읽어보세요. 🎜🎜setUp
및 tearDown
메소드에는 이제 반환 유형 void가 필요합니다: 🎜rrreeeValidation
Validator
Contract< /code> h4>🎜영향 가능성: 매우 낮음🎜🎜IlluminateContractsValidationValidator
validated
메서드 추가: 🎜rrreee🎜이 인터페이스를 호출하면 이 메서드의 구현을 추가해야 합니다. 🎜ValidatesAttributes
속성
🎜잠재적 영향: 매우 낮음🎜🎜IlluminateValidationConcernsValidatesAttributes
parseTable
속성 코드>, getQueryColumn
및 requireParameterCount
메서드의 protected
에서 public
으로 조정되었습니다. 🎜DatabasePresenceVerifier
클래스
🎜잠재적 영향: 매우 낮음🎜🎜IlluminateValidationDatabasePresenceVerifier
클래스의 테이블
메서드 공개 상태가 보호됨
에서 공개
로 조정되었습니다. 🎜Validator
클래스
ValidatesAttributes
속성DatabasePresenceVerifier
클래스Validator
클래스잠재적 영향: 매우 낮음Validator
类
影响可能性:非常低
IlluminateValidationValidator
类的 getPresenceVerifierFor
方法可见性从 protected
调整为了 public
。
邮箱验证
影响可能性:非常低
邮箱验证规则现在回检测邮箱地址是否兼容 RFC5630, 使验证逻辑和 SwiftMailer 保持一致。在 Laravel 5.7, email
规则只验证邮箱地址是否兼容 RFC822。
因此 当使用 Laravel 5.8 时,之前认为无效的邮箱地址现在将被视为有效,如 (e.g hej@bär.se
)。 通常,这被看做一个 bug 修复; 不过, 我们还是将其列到这里给你一个提醒。如果您遇到有关此更改的任何问题,请通知我们。
视图
getData
方法
影响可能性:非常低
IlluminateContractsViewView 契约中新增了 getData
方法。如果你调用了这个接口, 则需要添加该方法的实现。
通知
Nexmo / Slack 通知频道
影响可能性:高
Nexmo 和 Slack 通知频道已经被提前到官方扩展中。要在自己的应用中使用这些频道,需要安装以下扩展包:
rrreee其他
我们还鼓励你查看 laravel/laravel
IlluminateValidationValidator
클래스의 getPresenceVerifierFor Code> 메소드 가시성이
보호
에서 공개
로 조정됩니다.
View
getData
메소드영향 가능성: 매우 낮음🎜
IlluminateContractsViewView 계약에 새로 추가됨< 코드>getData 메소드. 이 인터페이스를 호출하는 경우 이 메서드의 구현을 추가해야 합니다. 🎜
알림
🎜Nexmo/Slack 알림 채널잠재적 영향: 높음🎜
Nexmo 및 Slack 알림 채널이 공식 확장 프로그램에 추가되었습니다. . 자신의 애플리케이션에서 이러한 채널을 사용하려면 다음 확장을 설치해야 합니다. 🎜rrreee
기타
또한 laravel/laravel
코드 저장소. 이러한 업데이트 중 다수는 필수는 아니지만 애플리케이션의 이러한 파일을 코드 리포지토리와 동기화된 상태로 유지할 수 있습니다. 이러한 업데이트 중 일부는 이미 이 업그레이드 가이드에 언급되어 있지만 나열되지 않은 기타 사소한 업데이트(예: 구성 파일 또는 주석 변경)도 많이 있습니다. GitHub 비교 도구를 통해 어떤 업데이트가 더 중요한지 확인할 수 있습니다. 🎜🎜이 글은 🎜LearnKu.com🎜 웹사이트에 처음 게시되었습니다. 🎜🎜