Upgrade-Anweisungen
Upgrade-Anleitung
- aus 5.7 Upgrade auf 5.8.0
Änderungen mit großer Auswirkung
- Cache-TTL in Sekunden
- Sicherheitsverbesserungen für Cache-Sperren
- Markdown-Dateipfad geändert
- Nexmo / Slack Änderungen des Benachrichtigungskanals
Änderungen mit mittlerer Auswirkung
- Container Builder und Tag Service
- SQLite-Versionseinschränkungen
- Ersetzen Sie Helfer durch Klassen für Strings und Arrays
- Veraltet, zurückgestellt Dienstanbieter
- Einhaltung der PSR-16-Spezifikation
- Endung unregelmäßiger Plural-Modellnamen verbessern
- Auto-Inkrement-ID-Attribut zum benutzerdefinierten Zwischentabellenmodell hinzufügen
- Unterstützen Sie die Pheanstalk 4.0-Bibliothek
Aktualisierung von Laravel 5.7 auf 5.8
Geschätzte Upgrade-Zeit: 1 Stunde
Hinweis: Wir versuchen, jede mögliche Änderung zu dokumentieren. Da die meisten bahnbrechenden Änderungen innerhalb des Frameworks erfolgen, kann sich nur ein Teil dieser Änderungen auf Ihre Anwendung auswirken.
Abhängigkeiten aktualisieren
Aktualisieren Sie in composer.json
die laravel/framework
-Abhängigkeit auf 5.8.*
.
Überprüfen Sie als Nächstes, ob die installierten Drittanbieterpakete in der Anwendung Laravel 5.8 unterstützen und prüfen Sie, ob die installierte Version korrekt ist.
Anwendungsvertrag
environment
Methoden
Auswirkungswahrscheinlichkeit: Sehr gering
Illuminate/Contracts/Foundation/Application
Klasseenvironment
Methoden ' Die Signatur wurde geändert. Wenn diese Methode in Ihrer Anwendung überschrieben wird, sollten Sie die Signatur dieser Methode aktualisieren:
/** * 获取或检查当前应用程序的环境 * * @param string|array $environments * @return string|bool */public function environment(...$environments);
Neu hinzugefügte Methode
Potenzielle Auswirkung: Sehr gering
Die folgenden neuen Methoden wurden hinzugefügtbootstrapPath
, configPath
, databasePath
, environmentPath
, resourcePath
, storagePath
, resolveProvider
, bootstrapWith
, configurationIsCached
, detectEnvironment
, environmentFile
, environmentFilePath
, getCachedConfigPath
, getCachedRoutesPath
, getLocale
, getNamespace
, getProviders
, hasBeenBootstrapped
, loadDeferredProviders
, loadEnvironmentFrom
, routesAreCached
, setLocale
, shouldSkipMiddleware
, terminate
werden zu Illuminate/Contracts/Foundation/Application
Auswirkungswahrscheinlichkeit: Niedrig
Wenn der Benutzer auf den Link zum Zurücksetzen des Passworts klickt, verwendet Laravel der-Helfer zum Generieren von URLs zum Erstellen von Routen, die auf den Namen route
verweisen, wenn Laravel verwendet wird In Laravel 5.7 wird das Token ohne expliziten Namen an den password.reset
-Helfer übergeben, wie zum Beispiel: route
route('password.reset', $token);Wenn Sie Laravel 5.8 verwenden, wird das Token als expliziter Parameter an
übergeben Helfer: route
route('password.reset', ['token' => $token]);Wenn Sie also Ihre eigene
Route definieren würden, wäre es URI Stellen Sie sicher, dass Sie einen Token-Parameter angeben. password.reset
Wahrscheinlichkeit der Auswirkung: Niedrig
Erforderliche Passwortlänge beim Auswählen oder Zurücksetzen eines Passworts auf mindestens acht Zeichen geändert. CacheTTL in SekundenPotenzielle Auswirkung: Sehr hoch
Um detailliertere Ablaufzeiten beim Speichern von Daten zu ermöglichen, wurde die Lebensdauer der zwischengespeicherten Daten von Minuten auf Sekunden geändert. Die Methoden IlluminateCacheRepository
, put
, putMany
, add
und remember
der Klasse setDefaultCacheTime
und ihrer erweiterten Klassen sowie die Methoden put
aller Cache-Speicher wurden aktualisiert. Weitere Informationen finden Sie in der entsprechenden PR.
Wenn Sie einer dieser Methoden eine Ganzzahl übergeben, aktualisieren Sie Ihren Code, um sicherzustellen, dass die im Cache übergebenen Daten in Sekundenschnelle übergeben werden. Darüber hinaus können Sie eine DateTime
-Instanz übergeben, um anzugeben, wann die Daten ablaufen:
// 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));
{Tip} Durch diese Änderung ist das Laravel-Cache-System vollständig mit dem PSR-16-Cache-Bibliotheksstandard kompatibel.
Folgen Sie PSR-16
Möglichkeit der Auswirkung: Mittel
Zusätzlich zu Änderungen an den oben genannten Rückgabewerten wird dieses Upgrade auch aktualisiert TTL der Methoden IlluminateCacheRepository
, put
und putMany
in der Klasse add
Parameter, um die Konformität mit der PSR-16-Spezifikation zu verbessern. Die neue Funktion bietet einen Standardwert null
. Wenn also kein TTL-Wert angegeben wird, wird der Cache dauerhaft gespeichert und läuft nicht ab. Darüber hinaus werden Cache-Einträge gelöscht, wenn ihre TTL 0 oder weniger beträgt. Weitere Informationen finden Sie in der entsprechenden PR.
KeyWritten
Auch Veranstaltungen wurden aufgrund dieser Änderungen aktualisiert.
Verbesserungen der Sperrsicherheit
Möglichkeit von Auswirkungen: Hoch
In Laravel 5.7 und früheren Versionen von Laravel bieten einige Cache-Treiber die „atomare Sperre“ Die Funktion kann dazu führen, dass die Sperre aufgrund eines unerwarteten Verhaltens vorzeitig aufgehoben wird.
Zum Beispiel: Client A erwirbt eine Sperre foo
, die in 10 Sekunden abläuft. Client A benötigt tatsächlich 20 Sekunden, um seine Aufgabe abzuschließen. Während der Ausführung der Client A-Aufgabe wird die Sperre automatisch vom Cache-System aufgehoben. Anschließend erwirbt Client B die Sperre foo
. Schließlich schließt Client A seine Aufgabe ab und gibt die Sperre frei foo
, gibt jedoch versehentlich die von Client B gehaltene Sperre frei. Zu diesem Zeitpunkt kann Client C die Sperre erneut erhalten.
Um diese Situation zu entschärfen, wird die Sperre nun mithilfe eines eingebetteten „Scope-Tokens“ generiert, der sicherstellt, dass unter normalen Umständen nur der Sperrinhaber die Sperre freigeben kann.
Wenn Sie die Sperre mit der Cache::lock()->get(Closure)
-Methode verwenden, sind keine Änderungen erforderlich:
Cache::lock('foo', 10)->get(function () { // 锁将会被安全的自动释放});
Wenn Sie jedoch Cache::lock()->release()
manuell aufrufen, müssen Sie Ihren Code aktualisieren, um die beizubehalten Locks Beispiel. Nach Abschluss der Aufgabe kann dann die Methode release
auf derselben Sperrinstanz aufgerufen werden. Zum Beispiel:
if (($lock = Cache::lock('foo', 10))->get()) { // 执行任务… $lock->release();}
Manchmal möchten Sie vielleicht eine Sperre in einem Prozess erwerben und sie in einem anderen Prozess freigeben. Sie könnten beispielsweise während einer Webanforderung eine Sperre erhalten und die Sperre aufheben, wenn der durch diese Anforderung ausgelöste Job in der Warteschlange endet. In diesem Fall sollten Sie den „Besitzer-Token“ des Sperrbereichs an den in der Warteschlange befindlichen Job übergeben, damit der Job die Sperre mit dem angegebenen Token erneut instanziieren kann:
// 在控制器中…$podcast = Podcast::find(1); if (($lock = Cache::lock('foo', 120))->get()) { ProcessPodcast::dispatch($podcast, $lock->owner());}// 在进程广播队列中… Cache::restoreLock('foo', $this->owner)->release();
Wenn Sie dies tun möchten, ohne Rücksicht auf die Freigabe zu nehmen Um ein Schloss ohne seinen aktuellen Besitzer zu erstellen, können Sie die folgenden forceRelease
-Methoden verwenden:
Cache::lock('foo')->forceRelease();
Repository
und Store
Vertrag
Auswirkungswahrscheinlichkeit: sehr gering
Um die Anforderungen von PSR-16
vollständig zu erfüllen, muss der Rückgabewert der Methoden IlluminateContractsCacheRepository
und put
festgelegt werden des forever
-Vertrags und die Methoden IlluminateContractsCacheStore
, put
und putMany
des forever
-Vertrags wurden geändert void
bis bool
.
Sammlung
firstWhere
Methode
Auswirkungsmöglichkeit: Sehr gering
firstWhere
Methodenparameter entsprechend geändertwhere
Die Signatur der Methode. Wenn Sie diese Methode überschreiben möchten, sollten Sie die Parameter der Methode so aktualisieren, dass sie mit ihrem übergeordneten Element übereinstimmen:
/** * 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);
Terminal
Kernel
Vertrag
Auswirkungsmöglichkeiten: Sehr niedrig
terminate
-Methode wurde zu Illuminate/Contracts/Console/Kernel
hinzugefügt im Vertrag. Wenn Sie diese Schnittstelle implementieren, sollten Sie diese Methode zur implementierenden Klasse hinzufügen.
Container
Generator- und Markup-Service
Auswirkungswahrscheinlichkeit: Mittel
Die tagged
-Methode von Container wird mit PHP, dem Anbieter, generiert Instanziiert den Dienst langsam mit dem angegebenen Tag. Aufgrund dieser Änderung gibt die Methode tagged
den Typ iterable
anstelle von 数组
zurück. Wenn Ihre Methode einen Rückgabewert mit Typhinweis verwendet, müssen Sie auch den Typhinweis in einen iterable
-Typ ändern.
Außerdem kann auf den Tag-Dienst nicht mehr direkt über den Array-Offset-Wert zugegriffen werden, z. B. $container->tagged('foo')[0]
.
resolve
Methode
Auswirkungswahrscheinlichkeit: sehr gering
resolve
Methode empfängt einen neuen booleschen Parameter, der das Ereignis auf dem Objekt Ob angibt Der (Parsing-Rückruf) sollte während der Instanziierung ausgelöst/ausgeführt werden. Wenn Sie diese Methode überschreiben, müssen Sie die Methodensignatur aktualisieren, damit sie mit der übergeordneten Methode übereinstimmt.
addContextualBinding
Methoden
Auswirkungswahrscheinlichkeit: Sehr gering
IlluminateContractsContainerContainer
Vertrag fügt addContextualBinding
Methode hinzu. Wenn Sie diese Schnittstelle implementieren möchten, sollten Sie diese Methode zu Ihrer Implementierung hinzufügen.
tagged
Methoden
Auswirkungswahrscheinlichkeit: Niedrig Die tagged
-Methode gibt jetzt einen iterable
-Typ anstelle eines array
-Typs zurück. Wenn Ihre Codeparameter Typhinweise haben, suchen Sie alle tagged
-Methodenhinweise vom Typ array
und ändern Sie die Typhinweise in iterable
-Typen.
flush
Methoden
Auswirkungswahrscheinlichkeit: Sehr gering
IlluminateContractsContainerContainer
Vertrag fügt flush
Methode hinzu. Wenn Sie diese Schnittstelle implementieren möchten, sollten Sie diese Methode zu Ihrer Implementierung hinzufügen.
Datenbank
MySQL-JSON-Wert nicht in Anführungszeichen gesetzt
Auswirkungswahrscheinlichkeit: Niedrig
Bei Verwendung von MySQL und MariaDB wird der JSON Der vom Abfragekonstruktor zurückgegebene Wert wird nicht in Anführungszeichen gesetzt. Andere Datenbanken verhalten sich konsistent wie folgt:
$value = DB::table('users')->value('options->language'); dump($value); // Laravel 5.7... '"en"' // Laravel 5.8... 'en'
Daher wird der ->>
-Operator nicht mehr unterstützt oder benötigt.
SQLite
Potenzielle Auswirkungen: Moderat
Ab Laravel 5.8 wird die früheste Version von SQLite bis SQLite 3.7.11 unterstützt. Wenn Sie eine frühere Version von SQLite verwenden, sollten Sie ein Upgrade durchführen (es wird empfohlen, auf SQLite 3.8.8 zu aktualisieren).
Eloquent
Unregelmäßige Pluralenden in Modellnamen
Auswirkungswahrscheinlichkeit: Mittel
Ab Laravel 5.8 ist die Modellbenennung von enthalten zusammengesetzte Namen, die auf unregelmäßige Pluralformen enden Die Pluralisierung erfolgt nun korrekt.
// Laravel 5.7... App\Feedback.php -> feedback (正确的复数形式) App\UserFeedback.php -> user_feedbacks (错误的复数形式) // Laravel 5.8 App\Feedback.php -> feedback (正确的复数形式) App\UserFeedback.php -> user_feedback (正确的复数形式)
Wenn Ihr Modellname den Pluralnamen nicht korrekt verwendet, können Sie ihn nach der Definition des $table
-Attributs im Modell weiterhin verwenden:
/** * 与模型关联的数据表名称。 * * @var string */protected $table = 'user_feedbacks';<🎜 mit Inkrementierende ID Benutzerdefiniertes Relay-ModellWenn Sie eine Viele-zu-viele-Beziehung mit einem benutzerdefinierten Relay-Modell definieren und das Relay-Modell über einen automatisch inkrementierten Primärschlüssel verfügt, sollten Sie sicherstellen, dass das benutzerdefinierte Relay-Attribut A
ist in der Modellklasse definiert und sein Wert ist incrementing
: true
/** * 标识 ID 是否自增 * * @var bool */public $incrementing = true;
Methode loadCount
Auswirkungswahrscheinlichkeit: Niedrig
Methode zur Basisklasse IlluminateDatabaseEloquentModel
hinzugefügt. Wenn Ihre Anwendung auch die Methode loadCount
definiert, kann es zu Konflikten mit der Methode in Eloquent kommen. loadCount
Methode originalIsEquivalent
Auswirkungswahrscheinlichkeit: sehr gering
Die IlluminateDatabaseEloquentConcernsHasAttributes
Mitgliedsmethode im Merkmal wurde von originalIsEquivalent
geändert für protected
. public
Automatische Soft-Delete-Konvertierung von Attributen deleted_at
Auswirkungswahrscheinlichkeit: Niedrig
Wenn Ihr Eloquent-Modell das Merkmal IlluminateDatabaseEloquentSoftDeletes
verwendet, wird die Mitgliedereigenschaft deleted_at
jetzt automatisch in eine Instanz Carbon
konvertiert. Sie können dieses Verhalten überschreiben, indem Sie Ihren benutzerdefinierten Accessor für die Membereigenschaft schreiben oder ihn manuell zum casts
-Attribut hinzufügen:
protected $casts = ['deleted_at' => 'string'];
BelongsTo
s getForeignKey
-Methode
Einflussmöglichkeit: gering
BelongsTo
im Assoziationsverhältnis Die Methoden getForeignKey
und getQualifiedForeignKey
wurden in getForeignKeyName
bzw. getQualifiedForeignKeyName
umbenannt, sodass die Methodennamen mit anderen von Laravel bereitgestellten Beziehungen übereinstimmen.
Ereignis
fire
Methode
Auswirkungswahrscheinlichkeit: Niedrig
Illuminate/Events/Dispatcher
im Unterricht fire
Methode (in Larevel 5.4 veraltet) wurde ENTFERNT.
Sie sollten die Alternative verwenden dispatch
.
Ausnahmebehandler
ExceptionHandler
Vertrag
Auswirkungswahrscheinlichkeit: Niedrig
IlluminateContractsDebugExceptionHandler
Neu im Vertrag hinzugefügt shouldReport
Verfahren. Wenn Sie nun die Ausnahmehandlerschnittstelle implementieren, müssen Sie auch diese Methode implementieren.
renderHttpException
Methode
Auswirkungswahrscheinlichkeit: Niedrig
IlluminateFoundationExceptionsHandler
Die Signatur der renderHttpException
-Methode in der Klasse hat sich geändert. Wenn Sie diese Methode nun in einem Ausnahmehandler überschreiben, sollten Sie die Signatur der Methode ändern, um mit ihrer übergeordneten Klasse konsistent zu sein:
/** * 将给定的 Http 异常转换为 Http 响应。 * * @参数 \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface $e * @返回 \Symfony\Component\HttpFoundation\Response */protected function renderHttpException(HttpExceptionInterface $e);
Facades
Facade Service Resolution
Potenzielle Auswirkungen: Gering
getFacadeAccessor
Methode jetzt verfügbar Es wird nur eine Zeichenfolge zurückgegeben, die die Dienstcontainer-ID darstellt; zuvor würde diese Methode eine Objektinstanz zurückgeben.
Mail
Markdown-Dateipfadänderung
Auswirkungswahrscheinlichkeit: Hoch
Wenn Sie vendor:publish
bereits verwenden Der Befehl veröffentlicht die Markdown-E-Mail-Komponente von Laravel. Sie müssen den Pfad /resources/views/vendor/mail/markdown
umbenennen text
. Die Methoden
und markdownComponentPaths
wurden in textComponentPaths
umbenannt. Wenn Sie diese Methode überschreiben, sollten Sie den Methodennamen so aktualisieren, dass er mit der übergeordneten Klasse übereinstimmt.
PendingMail
Methodenparameteränderungen in der Klasse
Auswirkungsmöglichkeit: sehr gering
Die Methoden, IlluminateMailPendingMail
, send
, sendNow
und queue
in der Klasse later
fill
wurden geändert, um eine IlluminateContractsMailMailable
-Instanz anstelle einer IlluminateMailMailable
-Instanz als Argument zu akzeptieren. Wenn Sie eine Methode überschreiben möchten, müssen Sie ihre Parameter aktualisieren, damit sie mit der übergeordneten Klasse konsistent sind.
Warteschlange
Pheanstalk 4.0
Potenzielle Auswirkungen: Mittel
Laravel 5.8 bietet Unterstützung für die ~4.0
Release-Version von Pheanstalk Warteschlange. Wenn Sie die Pheanstalk-Bibliothek in Ihrer Anwendung verwenden, aktualisieren Sie Ihre Bibliothek bitte über Composer auf die ~4.0
Release-Version.
Job
Vertrag
Auswirkungswahrscheinlichkeit: Sehr gering Die Methoden
isReleased
, hasFailed
und markAsFailed
wurden hinzugefügt IlluminateContractsQueueJob
Unter Vertrag. Wenn Sie diese Schnittstelle implementieren, sollten Sie diese Methoden zu Ihrem Implementierungscode hinzufügen.
Job::failed
& FailingJob
Klassen
Auswirkungsmöglichkeit: Sehr gering
Wenn in Laravel 5.7 eine Warteschlangenaufgabe fehlschlägt, wird die Warteschlange angezeigt Der Worker führt die Methode FailingJob::handle
aus. In Laravel 5.8 wurde die Logik in der Klasse FailingJob
in die Methode fail
migriert, die in dieser Aufgabenklasse definiert ist. Aus diesem Grund ist die fail
-Methode im IlluminateContractsQueueJob
-Vertrag enthalten.
IlluminateQueueJobsJob
Die Basisklasse enthält die Implementierung von fail
, und in regulären Anwendungen muss kein Code geändert werden. Wenn Sie jedoch einen benutzerdefinierten Warteschlangentreiber erstellen und eine Aufgabenklasse erstellen, die nicht die von Laravel bereitgestellte Aufgabenbasisklasse erbt, sollten Sie sie manuell in Ihrer Methode für die benutzerdefinierte Aufgabenklasse fail
🎜> implementieren. Als Referenz für die Implementierung können Sie sich die Task-Basisklasse von Laravel ansehen.
Diese Änderung ermöglicht die Anpassung des Warteschlangentreibers, um mehr Kontrolle über den Aufgabenlöschvorgang zu erhalten.
Redis Blocking Pop
Möglichkeit von Auswirkungen: sehr gering
Es ist jetzt sicher, die Funktion „Blocking Pop“ des Redis-Warteschlangentreibers zu verwenden . Wenn zuvor die Verbindung zum Redis-Dienst oder -Worker getrennt wurde und gleichzeitig Aufgaben entfernt wurden, konnten Aufgaben in der Warteschlange verloren gehen (ein Ereignis mit geringer Wahrscheinlichkeit). Um das Blockieren von Pops sicher zu machen, wird für jede Laravel-Warteschlange eine neue Redis-Liste mit dem Suffix :notify
erstellt.
Anfrage
TransformsRequest
Middleware
Auswirkungswahrscheinlichkeit: Niedrig
Wenn die Anfrageeingabe nun ein Array ist, IlluminateFoundationHttpMiddlewareTransformsRequest
Die Methode transform
der Middleware erhält den „vollqualifizierten“ Anforderungseingabeschlüssel :
'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)}
Route
UrlGenerator
Protokoll
Potenzielle Auswirkungen: Sehr gering
Dieprevious
-Methode wurde dem IlluminateContractsRoutingUrlGenerator
-Vertrag hinzugefügt. Wenn Sie diese Schnittstelle aufrufen möchten, sollten Sie diese Methode zu Ihrer Implementierung hinzufügen.
Illuminate/Routing/UrlGenerator
cachedSchema
Auswirkungswahrscheinlichkeit: Sehr gering
-Attribut in (in Laravel 5.7 veraltet) wurde in geändert.
SitzungenIlluminate/Routing/UrlGenerator
$cachedSchema
$cachedScheme
Middleware
StartSession
Die Persistenzlogik der Sitzung wurde von < 🎜 geändert > Methode in Methode verschoben. Wenn Sie darin enthaltene Methoden überschreiben, sollten Sie sie aktualisieren, um die Änderungen widerzuspiegeln. Unterstützung
String- und Array-Klassen gegenüber Hilfsfunktionen bevorzugenterminate()
handle()
Alle
undGlobale Hilfsfunktionen sind veraltet. Sie müssen die von und bereitgestellten Methoden direkt verwenden.
Die Auswirkungen dieser Anpassung werden als mittel markiert, da diese Hilfsfunktionen zur besseren Abwärtskompatibilität in das neue Erweiterungspaket laravel/helpers verschoben werden. array_*
str_*
Verzögerter DienstanbieterIlluminateSupportArr
IlluminateSupportStr
Boolescher Wert
des Dienstanbieters, der angibt, ob der Anbieter zurückgestellt werden soll. Die Eigenschaft ist veraltet. Nun muss die Markierung eines Dienstanbieters als zurückgestellt erfolgen, indem der-Vertrag implementiert wird. Testen
PHPUnit 8defer
IlluminateContractsSupportDeferrableProvider
Standardmäßig verwendet Laravel 5.8 PHPUnit 7. Sie können jedoch auf PHPUnit 8 aktualisieren, dies erfordert jedoch PHP >= 7.2. Weitere Informationen finden Sie in der Release-Ankündigung von PHPUnit 8. Die Methoden
und erfordern jetzt den Rückgabe-Void-Typ:
protected function setUp(): voidprotected function tearDown(): void
Validierung
setUp
Vertrag tearDown
Beeinflusst die Wahrscheinlichkeit: Sehr niedrig
Validator
Eine neue -Methode wurde hinzugefügt: /**
* 获取已验证的属性和值。
*
* @return array
*/public function validated();
Wenn Sie diese Schnittstelle aufrufen, müssen Sie die Implementierung dieser Methode hinzufügen.
IlluminateContractsValidationValidator
Merkmal validated
Wahrscheinlichkeit einer Auswirkung: Sehr gering
ValidatesAttributes
, und <🎜 im Merkmal > Sichtbarkeit der Methode von auf
angepasst.IlluminateValidationConcernsValidatesAttributes
parseTable
Klasse getQueryColumn
requireParameterCount
protected
Auswirkungswahrscheinlichkeit: sehr gering public
DatabasePresenceVerifier
Sichtbarkeit der Methode
der Klasse angepasst von Für .
Validator
Klasse
Auswirkungswahrscheinlichkeit: sehr gering
IlluminateValidationValidator
Klasse getPresenceVerifierFor
Methodensichtbarkeit angepasst von protected
auf public
.
E-Mail-Verifizierung
Auswirkungsmöglichkeit: sehr gering
E-Mail-Verifizierungsregeln prüfen jetzt, ob die E-Mail-Adresse mit RFC5630 kompatibel ist, sodass die Verifizierungslogik und SwiftMailer bleiben konsistent. In Laravel 5.7 überprüft die Regel email
nur, ob E-Mail-Adressen RFC822-konform sind.
Wenn Sie also Laravel 5.8 verwenden, werden E-Mail-Adressen, die zuvor als ungültig galten, jetzt als gültig betrachtet, wie in (z. B. hej@bär.se
). Normalerweise wird dies als Fehlerbehebung betrachtet; wir fügen es hier jedoch zur Erinnerung hinzu. Sollten bei dieser Änderung Probleme auftreten, teilen Sie uns dies bitte mit.
Ansicht
getData
Methode
Möglichkeit der Auswirkung: Sehr gering
IlluminateContractsViewView Neu im Vertrag hinzugefügtgetData
Verfahren. Wenn Sie diese Schnittstelle aufrufen, müssen Sie die Implementierung dieser Methode hinzufügen.
Benachrichtigungen
Nexmo/Slack-Benachrichtigungskanäle
Potenzielle Auswirkungen: Hoch
Nexmo- und Slack-Benachrichtigungskanäle wurden offiziell vorgezogen Der Ausbau ist im Gange. Um diese Kanäle in Ihrer eigenen App nutzen zu können, müssen Sie die folgenden Erweiterungen installieren:
composer require laravel/nexmo-notification-channel composer require laravel/slack-notification-channel
Andere
Wir empfehlen Ihnen außerdem, sich das Änderungsprotokoll im laravel/laravel
Code-Repository anzusehen. Obwohl viele dieser Updates nicht erforderlich sind, können Sie diese Dateien in Ihrer Anwendung synchron mit dem Code-Repository halten. Einige dieser Updates werden bereits in diesem Upgrade-Leitfaden erwähnt, es gibt jedoch viele andere kleinere Updates (z. B. Änderungen an Konfigurationsdateien oder Anmerkungen), die nicht aufgeführt sind. Mit dem GitHub-Vergleichstool können Sie sehen, welche Updates für Sie wichtiger sind.