{"id":59237,"date":"2023-02-21T13:42:41","date_gmt":"2023-02-21T12:42:41","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=59237&#038;preview=true&#038;preview_id=59237"},"modified":"2023-08-29T06:22:09","modified_gmt":"2023-08-29T05:22:09","slug":"laravel-10","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/","title":{"rendered":"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen"},"content":{"rendered":"<p>Hast du dich nach \u00fcber einem Jahrzehnt seit der Einf\u00fchrung des beliebten <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-laravel\/\">Laravel-Frameworks<\/a> jemals gefragt: &#8222;Was kann Laravel PHP-Entwicklern noch bieten?&#8220;<\/p>\n<p>Wenn man bedenkt, wie sehr es die PHP-Entwicklung sowohl f\u00fcr Anf\u00e4nger als auch f\u00fcr professionelle Entwickler\/innen vereinfacht hat, k\u00f6nnte man meinen, dass es die Entwickler\/innen dazu verleitet hat zu glauben, dass PHP die einfachste Programmiersprache ist.<\/p>\n\n<p>Hat es also noch mehr \u00dcberraschungen f\u00fcr <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-entwickler\/\">Laravel-Entwickler<\/a> auf Lager? Oder hat es alle M\u00f6glichkeiten ausgesch\u00f6pft, um PHP-Entwickler zu unterst\u00fctzen?<\/p>\n<p>Nun, zumindest wissen wir, dass Laravel 10 eine Menge zu bieten hat. Das werden wir in diesem Artikel entdecken, wenn wir dich auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und nun veraltete Methoden und Pakete von Laravel 10 mitnehmen.<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>Laravel Release-Zeitplan<\/h2>\n<p>Fr\u00fcher hat das Laravel-Kernteam j\u00e4hrlich zwei Hauptversionen ver\u00f6ffentlicht (eine alle sechs Monate).<\/p>\n<p>Der Ver\u00f6ffentlichungszyklus wurde jedoch ge\u00e4ndert, als Taylor Otwell, der Sch\u00f6pfer von Laravel, <a href=\"https:\/\/blog.laravel.com\/updates-to-laravels-versioning-policy\" target=\"_blank\" rel=\"noopener noreferrer\">ank\u00fcndigte<\/a>, dass nur noch eine einzige Hauptversion pro Jahr ver\u00f6ffentlicht werden w\u00fcrde. Dies erm\u00f6glichte es dem Kernteam und der Community, mehr Zeit und M\u00fche auf eine bestimmte Version des Frameworks zu verwenden und neue leistungsstarke Funktionen einzuf\u00fchren, ohne dass es zu grundlegenden \u00c4nderungen kommt.<\/p>\n<p>Laravel 10 sollte am 7. Februar 2023 erscheinen, nach der Ver\u00f6ffentlichung von <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-9\/\">Laravel 9<\/a> am 8. Februar 2022. Das Team brauchte jedoch mehr Zeit, um sein Kunstwerk fertigzustellen, und Laravel 10 wurde schlie\u00dflich am 14. Februar 2023 ver\u00f6ffentlicht.<\/p>\n<p>Laravel 11 wird nun voraussichtlich im ersten Quartal des Monats Februar 2024 ver\u00f6ffentlicht.<\/p>\n<p>Au\u00dferdem werden gem\u00e4\u00df der <a href=\"https:\/\/laravel.com\/docs\/10.x\/releases#support-policy\" target=\"_blank\" rel=\"noopener noreferrer\">Support-Richtlinie<\/a> f\u00fcr alle Laravel-Versionen 18 Monate lang Fehlerbehebungen und zwei Jahre lang Sicherheitsupdates angeboten.<\/p>\n<p>Im Folgenden sind die voraussichtlichen Zeitpl\u00e4ne f\u00fcr Fehlerbehebungen und Sicherheitsupdates aufgef\u00fchrt:<\/p>\n<ul>\n<li>Laravel 9 wird bis zum 8. August 2023 mit Bugfixes und bis zum 6. Februar 2024 mit Sicherheitsupdates versorgt.<\/li>\n<li>Laravel 10 wird bis zum 6. August 2024 Fehlerbehebungen und bis zum 4. Februar 2025 Sicherheitskorrekturen erhalten.<\/li>\n<li>Laravel 11 wird voraussichtlich bis zum 5. August 2025 Fehlerbehebungen und bis zum 3. Februar 2026 Sicherheitsbehebungen erhalten.<\/li>\n<\/ul>\n<h2>Solltest du auf Laravel 10 upgraden?<\/h2>\n<p>Es ist wichtig, daran zu denken, dass wir die Laravel-Version unserer Anwendung nicht immer auf die neueste Version aktualisieren m\u00fcssen, sobald eine neue Version ver\u00f6ffentlicht wird.<\/p>\n<p>Laravel ist ein Open-Source-Framework, was bedeutet, dass wir jedes Mal, wenn wir eine neue Laravel-Instanz auf unserem Rechner installieren, Eigent\u00fcmer der Codebasis des Frameworks sind. Das bedeutet, dass die App auch dann noch funktioniert, wenn die Version des Frameworks, die unsere App verwendet, nicht mehr unterst\u00fctzt wird; wir m\u00fcssen sie nur noch selbst pflegen.<\/p>\n<p>Daher wird allgemein empfohlen, der Stabilit\u00e4t der Anwendung Vorrang vor Framework-Upgrades zu geben.<\/p>\n<p>Kurz gesagt, du solltest ein Upgrade auf Laravel 10 in Betracht ziehen, wenn:<\/p>\n<ul>\n<li>Die Anwendung mit der aktuellen Version stabil ist und ohne Probleme funktioniert.<\/li>\n<li>Die neue Version entweder eine Funktion hinzuf\u00fcgt, die deine Anwendung ben\u00f6tigt, oder ein Problem behebt, das in deiner Anwendung aufgetreten ist.<\/li>\n<li>Die Anwendung wird gut getestet, bevor die \u00c4nderungen des Upgrades in die Produktion \u00fcbernommen werden.<\/li>\n<\/ul>\n<h2>Laravel 10 Hot Updates<\/h2>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-21.png\" alt=\"Das Laravel 10-Logo mit dem Wort \"Laravel\" in leuchtendem Orange und der \"10\" in Grau\" width=\"1024\" height=\"576\"><figcaption class=\"wp-caption-text\">Laravel 10<\/figcaption><\/figure>\n<p>Kinsta ist ein gro\u00dfer Fan von Laravel. Deshalb haben wir die Highlights von Laravel 10 in einem einzigen Artikel zusammengefasst, der dir als Referenz und Leitfaden f\u00fcr die Nutzung aller neuen Funktionen dienen soll. Deshalb empfehlen wir dir, diese Seite als Lesezeichen zu speichern und sie von Zeit zu Zeit wieder aufzurufen.<\/p>\n<h3>Neue Funktionen und Updates in Laravel 10<\/h3>\n<p>Das Spannendste an jeder neuen Version sind zweifellos die neuen Funktionen. Werfen wir also gleich zu Beginn einen Blick auf die neuen Funktionen und Updates in Laravel 10.<\/p>\n<h4>1. PHP 8.1: Das Herzst\u00fcck von Laravel 10<\/h4>\n<p>PHP 8.1 ist die minimal erforderliche PHP-Version in Laravel 10. Einige Funktionen von PHP 8.1, wie z. B. readonly properties und array_is_list, werden in Laravel 10 verwendet.<\/p>\n<h4>2. Unterst\u00fctzung f\u00fcr PHP 8.2<\/h4>\n<p>PHP 8.2 wurde am 8. Dezember 2022 ver\u00f6ffentlicht, nur zwei Monate vor der Ver\u00f6ffentlichung von Laravel 10. Das sollte dich aber nicht davon abhalten, die Funktionen von PHP 8.2 zu nutzen, denn Laravel 10 ist ohne zus\u00e4tzliche Ma\u00dfnahmen f\u00fcr PHP 8.2 bereit.<\/p>\n<p>Tats\u00e4chlich unterst\u00fctzt das gesamte Laravel-\u00d6kosystem, einschlie\u00dflich Forge, Vapor und Envoyer, PHP 8.2, und du kannst <a href=\"https:\/\/blog.laravel.com\/laravel-loves-php-82\">PHP 8.2 sogar mit Laravel 9<\/a> verwenden. Wie cool ist das denn?!<\/p>\n<h4>3. Upgrade der offiziellen Laravel-Pakete<\/h4>\n<p>Nicht nur das Framework wird professionell gewartet und regelm\u00e4\u00dfig aktualisiert, sondern auch alle offiziellen Pakete und das \u00d6kosystem.<\/p>\n<p>Im Folgenden findest du eine Liste der neuesten offiziellen Laravel-Pakete, die f\u00fcr die Unterst\u00fctzung von Laravel 10 aktualisiert wurden:<\/p>\n<ol>\n<li>Breeze<\/li>\n<li>Cashier Stripe<\/li>\n<li>Dusk<\/li>\n<li>Horizon<\/li>\n<li>Installateur<\/li>\n<li>Jetstream<\/li>\n<li>Passport<\/li>\n<li>Pint<\/li>\n<li>Segel<\/li>\n<li>Scout<\/li>\n<li>Valet<\/li>\n<\/ol>\n<p>Ein weiterer Leckerbissen f\u00fcr Rails-, Vue-, React- und Svelte-Fans: <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-inertia\/\">Inertiajs 1.0.1<\/a> unterst\u00fctzt auch Laravel 10.<\/p>\n<h4>4. Predis Versions-Upgrade<\/h4>\n<p>Predis ist ein robuster <a href=\"https:\/\/kinsta.com\/de\/blog\/in-memory-datenbank\/\">Redis<\/a>-Client f\u00fcr PHP, der dir helfen kann, das <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-caching\/\">Beste aus dem Caching herauszuholen<\/a> und ein fantastisches Nutzererlebnis zu bieten. Laravel unterst\u00fctzte fr\u00fcher die Versionen 1 und 2, aber ab Laravel 10 unterst\u00fctzt das Framework Predis 1 nicht mehr.<\/p>\n<p>Obwohl in der Laravel-Dokumentation <a href=\"https:\/\/laravel.com\/docs\/10.x\/redis\" target=\"_blank\" rel=\"noopener noreferrer\">Predis<\/a> als das Paket f\u00fcr die Interaktion mit Redis genannt wird, kannst du auch die <a href=\"https:\/\/github.com\/phpredis\/phpredis\/\" target=\"_blank\" rel=\"noopener noreferrer\">offizielle PHP-Erweiterung<\/a> verwenden. Diese Erweiterung bietet eine API f\u00fcr die Kommunikation mit Redis-Servern.<\/p>\n<h4>5. Native Typendeklarationen<\/h4>\n<p>Fr\u00fcher hat Laravel DocBlocks in seinem Skeleton-Code verwendet, um zu verdeutlichen, was ein Teil des Codes tut und welche Parameter oder Antworten zu erwarten sind. Dank der nativen Typendeklarationen in Laravel 10 wird sich dies jedoch \u00e4ndern.<\/p>\n<p>Am besten l\u00e4sst sich diese \u00c4nderung anhand eines einfachen Beispiels erkl\u00e4ren. Anstatt einer Funktion, die wie folgt aussieht:<\/p>\n<pre><code class=\"language-php\">\/**\n* Determine whether the user can create models.\n*\n* @param {{ namespacedUserModel }} $user\n* @return IlluminateAuthAccessResponse|bool\n*\/\n\npublic function create({{ user }} $user)\n{\n  \/\/\n}<\/code><\/pre>\n<p>&#8230;wird sie so aussehen:<\/p>\n<pre><code class=\"language-php\">\/**\n* Determine whether the user can create models.\n*\/\n\npublic function create({{ user }} $user): bool\n{\n  \/\/\n}<\/code><\/pre>\n<p>Diese \u00c4nderung dient ausschlie\u00dflich dem Nutzen f\u00fcr die Entwickler, da IDEs die Form des erwarteten Parameters und der Antwort kennen werden. Sie sorgt f\u00fcr mehr Klarheit bei der Typisierung, was bei nativen PHP-Typen nicht m\u00f6glich ist. Dadurch werden die Code-Editoren mit Autovervollst\u00e4ndigungsfunktionen besser funktionieren.<\/p>\n<h4>6. Alle Validierungsregeln standardm\u00e4\u00dfig aufrufbar<\/h4>\n<p>Wenn du in Laravel 9 eine Validierungsregel aufrufbar machen wolltest, musstest du ein <code>--invokable<\/code> Flag nach dem Artisan-Befehl hinzuf\u00fcgen. Das ist jetzt nicht mehr n\u00f6tig, weil alle Laravel 10 Regeln standardm\u00e4\u00dfig aufrufbar sind. Du kannst also den folgenden Befehl ausf\u00fchren, um eine neue aufrufbare Regel in Laravel 10 zu erstellen:<\/p>\n<pre><code class=\"language-php\">php artisan make:rule CustomRule<\/code><\/pre>\n<h4>7. Unterst\u00fctzung der nativen Spaltenmodifikation<\/h4>\n<p>Um die Notwendigkeit des DBAL-Pakets (<code>doctrine\/dbal<\/code>) bei der Verwendung von <code>change()<\/code> zum \u00c4ndern von Spalten zu beseitigen, wurde in Laravel 10 eine neue Funktion eingef\u00fchrt, die es Entwicklern erm\u00f6glicht, die Methode <code>change()<\/code> zu verwenden und Spalten mit <a href=\"https:\/\/kinsta.com\/de\/blog\/postgresql-vs-sql-server\/\">MySQL, PostgreSQL<\/a> und <a href=\"https:\/\/kinsta.com\/de\/blog\/postgresql-vs-sql-server\/\">SQL Server<\/a> zu \u00e4ndern, ohne zus\u00e4tzliche Pakete zu ben\u00f6tigen. Dies ist eine bedeutende und <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45487#issuecomment-1371500000\" target=\"_blank\" rel=\"noopener noreferrer\">riskante \u00c4nderung<\/a>, aber wir glauben, dass sie sich lohnt, da sie die Abh\u00e4ngigkeit von einem zus\u00e4tzlichen Paket beseitigt.<\/p>\n<p>Um die neue Funktion besser zu verstehen, schau dir das folgende Beispiel an:<\/p>\n<pre><code class=\"language-php\">$table-&gt;integer('user_balance')-&gt;unsigned()-&gt;default(0)-&gt;comment('balance'); \/\/ `user_balance` is an integer, unsigned, defaults to '0', and column comment is 'balance'<\/code><\/pre>\n<p>Wir nehmen an, dass wir eine Spalte f\u00fcr <code>user_balance<\/code> haben und ihren Typ \u00e4ndern wollen. Ab Laravel 10 k\u00f6nnen wir das ganz einfach tun:<\/p>\n<pre><code class=\"language-php\">$table-&gt;bigInteger('user_balance')-&gt;change(); \/\/ This will change `user_balance` to bigInteger instead of just integer<\/code><\/pre>\n<p>Der obige Code wird den Typ der Spalte erfolgreich \u00e4ndern, aber auch die Attribute <code>UNSIGNED<\/code>, <code>DEFAULT<\/code> und <code>COMMENT<\/code> l\u00f6schen. Deshalb ist es wichtig, dass du daran denkst, alle Attribute hinzuzuf\u00fcgen, wenn du den Typ einer Spalte \u00e4nderst:<\/p>\n<pre><code class=\"language-php\">$table-&gt;bigInteger('user_balance')-&gt;unsigned()-&gt;default(0)-&gt;comment('balance')-&gt;change();<\/code><\/pre>\n<p>Wenn du mehrere <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-datenbank\/\">Datenbankverbindungen<\/a> hast und DBAL bereits installiert hast, empfiehlt es sich, die Methode <code>Schema::useNativeSchemaOperationsIfPossible()<\/code> innerhalb der Boot-Methode in <code>AppProvidersAppServiceProvider<\/code> aufzurufen, um native Schema-Operationen nutzen zu k\u00f6nnen und um native Operationen zu verwenden, bevor du dich auf das Paket verl\u00e4sst (SQLite zum Beispiel unterst\u00fctzt dies noch nicht):<\/p>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesSchema;\nclass AppServiceProvider extends ServiceProvider\n{\n  public function boot()\n  {\n    Schema::useNativeSchemaOperationsIfPossible();\n  }\n}<\/code><\/pre>\n<h4>8. Column Type Native Retrieval<\/h4>\n<p>Eine weitere bemerkenswerte Funktion von Laravel 10 ist die M\u00f6glichkeit, die Methode <code>Schema::getColumnType<\/code> zu verwenden, ohne sich auf das Paket <code>doctrine\/dbal<\/code> verlassen zu m\u00fcssen. Derzeit verwenden wir <code>Schema::getColumnType<\/code> mit DBAL, um den Spaltentyp zu ermitteln. DBAL bildet jeden nativen Spaltentyp auf seinen DBAL-Typ ab und unterst\u00fctzt viele der von Laravel in verschiedenen Datenbanken verwendeten Spaltentypen nicht.<\/p>\n<p>In Laravel 10 hingegen gibt die neue Methode <code>Schema::getColumnType<\/code> den tats\u00e4chlichen Spaltentyp und nicht sein DBAL-\u00c4quivalent zur\u00fcck. Sie erm\u00f6glicht es dir auch, Integrationstests f\u00fcr die neue native Spalten\u00e4nderungsfunktion zu schreiben. Mit dieser Funktion kannst du entweder den Datentypnamen oder die gesamte Typdefinition der angegebenen Spalte abrufen:<\/p>\n<pre><code class=\"language-php\">Schema::getColumnType('products', 'price'); \/\/ decimal<\/code><\/pre>\n<h4>9. Schnellerer Hash-Algorithmus<\/h4>\n<p>xxHash ist ein Hash-Algorithmus, der unglaublich schnell ist. Er zeichnet sich durch eine hohe Zuf\u00e4lligkeit und Streuung der Ausgabe sowie durch Einzigartigkeit aus, um Kollisionen zu vermeiden. Da PHP 8.1 xxh128 unterst\u00fctzt und Laravel 10 auf PHP 8.1 l\u00e4uft, ist es ideal, einen so zuverl\u00e4ssigen Hash-Algorithmus in Laravel 10 zu haben.<\/p>\n<p><a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45371#issuecomment-1359597016\" target=\"_blank\" rel=\"noopener noreferrer\">Taylor<\/a> hat bei der \u00dcberpr\u00fcfung dieser \u00c4nderung darauf hingewiesen, dass einige Pakete von Drittanbietern darauf angewiesen sind, dass die Dateinamen das exakte Format des SHA-1-Hashes haben, also des Algorithmus, den Laravel f\u00fcr das Hashing verwendet. Wenn du ein Upgrade auf Laravel 10 planst, solltest du daher alle Pakete von Drittanbietern, die du in deiner App verwendest, auf diese Tatsache \u00fcberpr\u00fcfen.<\/p>\n<h4>10. <code>whereExists()<\/code> Methodenunterst\u00fctzung f\u00fcr Eloquent Builder<\/h4>\n<p>Wenn du <code>whereExists()<\/code> verwendest, musst du die verschachtelte Abfrage mit einer Closure konfigurieren. Gl\u00fccklicherweise ist es mit Laravel 10 jetzt m\u00f6glich, einen Eloquent Builder als verschachtelte Abfrage einzubinden. Das erm\u00f6glicht die Verwendung von benutzerdefinierten Builder-Methoden, Model-Scopes und so weiter.<\/p>\n<p>Normalerweise machen wir das zum Beispiel, wenn wir <code>whereExists()<\/code> verwenden wollen:<\/p>\n<pre><code class=\"language-php\">Order::whereExists(function ($query) {\n  $query-&gt;from('products')-&gt;whereColumn('products.order_id', 'orders.id');\n});<\/code><\/pre>\n<p>Mit Laravel 10 k\u00f6nnen wir stattdessen einfach dies tun:<\/p>\n<pre><code class=\"language-php\">Order::whereExists(\n  Product::whereColumn('products.order_id', 'orders.id')\n);<\/code><\/pre>\n<h4>11. Eager-Loading-Optimierung<\/h4>\n<p>Eine der interessanten neuen Funktionen von Laravel 10 ist die <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-leistung\/#11-make-use-of-eager-loading\">Optimierung des \u00a0Eager-Loading<\/a>, wenn es keine Schl\u00fcssel zu laden gibt. Diese \u00c4nderung ist eher ein Fix als ein Feature, denn sie behebt ein aktuelles Problem, bei dem Eager-Loading-Relationen dazu f\u00fchren, dass eine gro\u00dfe Anzahl unm\u00f6glicher Abfragen ausgef\u00fchrt wird.<\/p>\n<p>Derzeit f\u00fchrt Laravel beim Eager-Loading von Relationen, die keine zu ladenden Schl\u00fcssel haben, immer noch eine \u00e4hnliche Abfrage aus wie diese:<\/p>\n<pre><code class=\"language-php\">select * from `table_name` where 0 = 1<\/code><\/pre>\n<p>Das neue Laravel 10-Update pr\u00fcft jedoch, ob \u00fcberhaupt Schl\u00fcssel vorhanden sind, und wenn nicht, wird eine leere Sammlung erstellt, sodass keine unn\u00f6tigen Datenbankabfragen mehr n\u00f6tig sind.<\/p>\n<h4>12. <code>$path<\/code> Optional f\u00fcr Dateisystem-Methoden<\/h4>\n<p>In Laravel 10 ist der Parameter <code>$path<\/code> f\u00fcr die folgenden Methoden optional:<\/p>\n<ul>\n<li><code>FilesystemAdapter#putFile<\/code><\/li>\n<li><code>FilesystemAdapter#putFileAs<\/code><\/li>\n<li><code>UploadedFile#store<\/code><\/li>\n<li><code>UploadedFile#storeAs<\/code><\/li>\n<li><code>UploadedFile#storePublicly<\/code><\/li>\n<li><code>UploadedFile#storePubliclyAs<\/code><\/li>\n<\/ul>\n<p>Anstatt dies also zu tun, um eine hochgeladene Datei auf <a href=\"https:\/\/kinsta.com\/de\/blog\/amazon-s3-backups\/\">Amazon S3<\/a> zu speichern:<\/p>\n<pre><code class=\"language-php\">Storage::disk('s3')-&gt;putFile(\u2018post\/images', $uploadedFile);<\/code><\/pre>\n<p>&#8230;k\u00f6nnen wir dies tun:<\/p>\n<pre><code class=\"language-php\">Storage::disk(Disk::PostImages)-&gt;putFile($uploadedFile)<\/code><\/pre>\n<h4>13. Datenbankausdr\u00fccke und Grammatik-spezifische Formatierung<\/h4>\n<p>Nur vier Tage vor der Ver\u00f6ffentlichung von Laravel 10 hat das Laravel-Core-Team beschlossen, ein geniales Feature zu integrieren, das eine gro\u00dfe Herausforderung bei der Arbeit mit mehreren Datenbanken angeht.<\/p>\n<p>Wenn wir in fr\u00fcheren Versionen mit PostgreSQL und MySQL gearbeitet haben und den ersten Wert einer Liste als Alias zur\u00fcckgeben wollten, mussten wir rohen Datenbankcode schreiben und Folgendes tun:<\/p>\n<pre><code class=\"language-php\">DB::table(\u2018visitors')\n-&gt;when(isPostgreSQL(), fn ($query) =&gt; $query-&gt;select(DB::raw('coalesce(NULL, \"user\", \"guest\") AS \"First Visitor\"')))\n-&gt;when(isMySQL(), fn ($query) =&gt; $query-&gt;select(DB::raw('coalesce(NULL, `user`, `guest`) AS `First Visitor`')))<\/code><\/pre>\n<p>Im obigen Code verwenden wir die <a href=\"https:\/\/www.w3schools.com\/sql\/func_sqlserver_coalesce.asp\" target=\"_blank\" rel=\"noopener noreferrer\">Funktion<code>COALESCE()<\/code><\/a>, um den ersten Wert, der nicht Null ist, als Alias mit dem Namen <strong>first visitor<\/strong> zur\u00fcckzugeben. Jedes Mal, wenn wir eine Operation wie diese durchf\u00fchren wollen, m\u00fcssen wir also erneut Rohdatenbankcode schreiben.<\/p>\n<p>Mit der neuen Funktion k\u00f6nnen wir wiederverwendbare Ausdrucksklassen erstellen, die die Rohausdr\u00fccke und Anweisungen, die wir f\u00fcr unsere Abfragen ben\u00f6tigen, nur einmal implementieren. So m\u00fcssen wir keinen Rohdatenbankcode mehr schreiben, wenn wir weitere Datenbankfunktionen nutzen wollen.<\/p>\n<p>Um auf das obige Beispiel zur\u00fcckzukommen, folgen wir dem neuen Laravel 10-Ansatz, um das gleiche Ergebnis zu erzielen, ohne die Syntax des rohen Datenbankcodes zu verwenden.<\/p>\n<p>Zun\u00e4chst m\u00fcssen wir zwei Klassen erstellen &#8211; eine f\u00fcr das Aliasing und eine f\u00fcr die Verwendung der Funktion <code>COALESCE()<\/code>:<\/p>\n<pre><code class=\"language-php\">class Alias implements Expression\n{\n  public function __construct(\n    public readonly Expression|string $expression,\n    public readonly string $name,\n  ) { }\n  public function getValue(Grammar $grammar): string\n  {\n    return match ($grammar-&gt;isExpression($this-&gt;expression)) {\n      true =&gt; \"{$grammar-&gt;getValue($this-&gt;expression)} as {$grammar-&gt;wrap($this-&gt;name)}\",\n      false =&gt; $grammar-&gt;wrap(\"{$this-&gt;name} as {$this-&gt;name}\"),\n    };\n  }\n}\nclass Coalesce implements Expression\n{\n  public function __construct(\n    public readonly array $expressions,\n  ) { }\n  public function getValue(Grammar $grammar): string\n  {\n    $expressions = array_map(function ($expression) use($grammar): string {\n      return match ($grammar-&gt;isExpression($expression)) {\n        true =&gt; $grammar-&gt;getValue($expression),\n        false =&gt; $grammar-&gt;wrap($expression),\n      };\n    }, $this-&gt;expressions);\n    $expressions = implode(', ', $expressions);\n    return \"coalesce({$expressions})\";\n  }\n}<\/code><\/pre>\n<p>Dann k\u00f6nnen wir das gew\u00fcnschte Ergebnis sowohl f\u00fcr MySQL als auch f\u00fcr PostgreSQL erreichen:<\/p>\n<pre><code class=\"language-php\">DB::table('visitors') -&gt;select(new Alias(new Coalesce([NULL, 'user', 'guest']), 'First Visitor'));<\/code><\/pre>\n<p>Du denkst vielleicht, dass das zu viel Arbeit ist, aber es lohnt sich auf jeden Fall, weil du es nur einmal schreiben musst und es dir die M\u00fche erspart, die Syntax zu \u00e4ndern, wenn du mit mehreren Datenbanken arbeitest.<\/p>\n<p>Laut Tobias Petry, dem Ersteller des <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/44784\" target=\"_blank\" rel=\"noopener noreferrer\">Pull Requests<\/a>, wird diese \u00c4nderung au\u00dferdem zahlreiche M\u00f6glichkeiten f\u00fcr Pakete er\u00f6ffnen, die die g\u00e4ngigsten Raw-Expression-Klassen f\u00fcr dich bereitstellen. Er hat sogar angek\u00fcndigt, dass er sie nach der Ver\u00f6ffentlichung von Laravel 10 in einem <a href=\"https:\/\/github.com\/tpetry\/laravel-query-expressions\" target=\"_blank\" rel=\"noopener noreferrer\">eigenen Paket<\/a> f\u00fcr die Community bereitstellen wird.<\/p>\n<h4>14. SQL Server-Update zur Verwendung von <code>FETCH<\/code> und <code>OFFSET<\/code> f\u00fcr Abfragen, die kein <code>orderBy<\/code>verwenden<\/h4>\n<p>Wenn wir <code>orderBy<\/code> in einer Abfrage wie dieser verwenden:<\/p>\n<pre><code class=\"language-php\">$builder-&gt;select('*')-&gt;from('users')-&gt;skip(11)-&gt;take(10)-&gt;orderBy('email', 'desc');<\/code><\/pre>\n<p>Laravel erzeugt dann eine SQL-Anweisung, die <a href=\"https:\/\/www.geeksforgeeks.org\/sql-offset-fetch-clause\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>FETCH<\/code> und <code>OFFSET<\/code><\/a> verwendet:<\/p>\n<pre><code class=\"language-sql\">select * from [users] order by [email] desc offset 11 rows fetch next 10 rows only<\/code><\/pre>\n<p>Wenn wir jedoch in fr\u00fcheren Versionen von Laravel <code>orderBy<\/code> aus der Abfrage streichen, f\u00e4llt es auf die alte Methode zur\u00fcck, die Ergebnisse zu verrechnen:<\/p>\n<pre><code class=\"language-php\">$builder-&gt;select('*')-&gt;from('users')-&gt;skip(11)-&gt;take(10);<\/code><\/pre>\n<pre><code class=\"language-sql\">select * from (select *, row_number() over (order by (select 0)) as row_num from [users]) as temp_table where row_num between 11 and 20 order by row_num<\/code><\/pre>\n<p>Mit dem <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/44937\" target=\"_blank\" rel=\"noopener noreferrer\">neuen Update<\/a> in Laravel 10 kann deine Laravel 10-Anwendung nun <code>FETCH<\/code> und <code>OFFSET<\/code> verwenden, auch wenn <code>orderBy<\/code> nicht vorhanden ist:<\/p>\n<pre><code class=\"language-sql\">select * from [users] order by (SELECT 0) offset 10 rows fetch next 10 rows only<\/code><\/pre>\n<p>Dieses Update <a href=\"https:\/\/gist.github.com\/dunhamjared\/cb40bbf294ed6f8e48bd60010a31b4f3\" target=\"_blank\" rel=\"noopener noreferrer\">verbessert die Geschwindigkeit um 33%<\/a> und erfordert weniger Ausf\u00fchrungsschritte.<\/p>\n<h4>15. PHPUnit 10 Unterst\u00fctzung<\/h4>\n<p>Laravel 10 unterst\u00fctzt PHPUnit 10. Es ist ein Framework f\u00fcr Unit-Tests f\u00fcr PHP und die Version 10 wurde <a href=\"https:\/\/phpunit.de\/announcements\/phpunit-10.html\" target=\"_blank\" rel=\"noopener noreferrer\">am 3. Februar 2023 ver\u00f6ffentlicht<\/a>. Laravel 10 wird weiterhin PHPUnit 9 und 8 unterst\u00fctzen.<\/p>\n<h4>16. Sicherheitsverbesserungen f\u00fcr die Klasse <code>Timebox<\/code><\/h4>\n<p>Laravel 10 enth\u00e4lt Sicherheitsverbesserungen f\u00fcr die Klasse <code>Timebox<\/code>, die die Anwendung vor <a href=\"https:\/\/tom.vg\/papers\/timeless-timing-attack_usenix2020.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">zeitlosen Timing-Angriffen<\/a> sch\u00fctzen soll. Die Klasse <code>Timebox<\/code> wird innerhalb der Methode <code>hasValidCredentials<\/code> implementiert.<\/p>\n<p>Die Klasse <code>Timebox<\/code> unterst\u00fctzt jetzt die Behandlung von Ausnahmen, die w\u00e4hrend der Ausf\u00fchrung eines Timebox-Callbacks ausgel\u00f6st werden.<\/p>\n<h4>17. <code>dispatch()<\/code> Das Verhalten der Methode ist in Laravel 10 identisch<\/h4>\n<p>Die Methode <code>dispatch()<\/code> innerhalb des <code>DispatchesJobs<\/code> Traits pr\u00fcft jetzt auf eindeutige Jobs, genau wie die globale Hilfsfunktion <code>dispatch()<\/code>. Das bedeutet, dass die Methoden von <code>dispatch()<\/code> in Laravel 10 die gleichen Funktionalit\u00e4ten haben.<\/p>\n<h4>18. Laravel Wimpel<\/h4>\n<p>Wenn du jemals an einer Webanwendung gearbeitet hast, die st\u00e4ndig mit neuen Funktionen aktualisiert wird, wei\u00dft du, wie wichtig Feature Flags sind. Die Erhaltung von Feature Flags ist jedoch mit viel Arbeit verbunden. Aber keine Sorge, Laravel bietet dir mit dem neuen Paket Laravel Pennant eine L\u00f6sung.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/10.x\/pennant\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Pennant<\/a> bietet eine einfach zu bedienende L\u00f6sung f\u00fcr die Pflege von Feature Flags. Es wird sogar mit einem In-Memory-Array-Treiber und einer Datenbank geliefert.<\/p>\n<p>Du kannst ganz einfach ein neues Feature definieren:<\/p>\n<pre><code class=\"language-php\">use LaravelPennantFeature;\nuse IlluminateSupportLottery;\nFeature::define('new-color-button', function () {\nreturn Lottery::odds(1, 10);\n});<\/code><\/pre>\n<p>Dann kannst du \u00fcberpr\u00fcfen, ob der Benutzer Zugriff auf diese Funktion hat oder nicht:<\/p>\n<pre><code class=\"language-php\">use LaravelPennantFeature;\nif (Feature::active('new-color-button')) {\n  \/\/ ...\n}<\/code><\/pre>\n<p>In Laravel Blade sieht es sogar noch h\u00fcbscher aus:<\/p>\n<pre><code class=\"language-php\">@feature('new-color-button')\n\/\/ Kinsta Rules!!\n@endfeature<\/code><\/pre>\n<h4>19. Laravel-Prozess-Interaktion<\/h4>\n<p>Die neuen Prozessinteraktionen in Laravel 10 machen das Testen und Ausf\u00fchren von CLI-Prozessen zu einem Kinderspiel. Sie bietet eine unkomplizierte API, die das Testen erleichtert. Nehmen wir das Beispiel aus dem <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45314\" target=\"_blank\" rel=\"noopener noreferrer\">urspr\u00fcnglichen PR<\/a> f\u00fcr dieses Feature von Taylor:<\/p>\n<pre><code class=\"language-php\">use IlluminateSupportFacadesProcess;\n$result = Process::run('ls -la');\n$result-&gt;successful();\n$result-&gt;failed();\n$result-&gt;exitCode();\n$result-&gt;output();\n$result-&gt;errorOutput();\n$result-&gt;throw();\n$result-&gt;throwIf(condition);<\/code><\/pre>\n<p>Dir ist wahrscheinlich aufgefallen, wie einfach und sauber der obige Code ist. Wenn es um die Erstellung von Prozessen geht, werden die Dinge nur noch besser:<\/p>\n<pre><code class=\"language-php\">$result = Process::timeout(60)-&gt;path(base_path())-&gt;env([...])-&gt;run('ls -la');\n$result = Process::forever()-&gt;run('ls -la');<\/code><\/pre>\n<p>Um diese neue Funktion beim Testen zu nutzen, kannst du einen neuen, gef\u00e4lschten Prozess wie diesen erstellen:<\/p>\n<pre><code class=\"language-php\">Process::fake([\n  'ls *' =&gt; Process::result('Hello From Kinsta'),\n]);<\/code><\/pre>\n<p>Dann kannst du den gef\u00e4lschten Prozess ausf\u00fchren und die neu <a href=\"https:\/\/laravel.com\/docs\/10.x\/processes#available-assertions\" target=\"_blank\" rel=\"noopener noreferrer\">verf\u00fcgbaren Assertions<\/a> verwenden:<\/p>\n<pre><code class=\"language-php\">$result = Process::run('ls -la');\nProcess::assertRan(function ($process, $result) {\n  return $process-&gt;command == 'ls -la';\n});\nProcess::assertRanTimes(function ($process, $result) {\n  return $process-&gt;command == 'ls -la';\n}, times: 1);\nProcess::assertNotRan(function ($process, $result) {\n  return $process-&gt;command == 'cat foo';\n});<\/code><\/pre>\n<h4>20. Pest Scaffolding<\/h4>\n<p>Das Pest-Testger\u00fcst ist jetzt standardm\u00e4\u00dfig aktiviert, wenn du neue Laravel-Projekte erstellst. Um diese Funktion zu aktivieren, verwende das <code>--pest<\/code> Flag, wenn du eine neue App mit dem Laravel Installer erstellst:<\/p>\n<pre><code class=\"language-php\">laravel new example-kinsta-app --pest<\/code><\/pre>\n<h4>21. String Password Helper Function<\/h4>\n<p>Laravel 10 kann ein zuf\u00e4lliges und sicheres Passwort mit einer bestimmten L\u00e4nge erstellen:<\/p>\n<pre><code class=\"language-php\">$password = Str::password(12);<\/code><\/pre>\n<h3>Ausgeschiedene Methoden und Pakete in Laravel 10<\/h3>\n<p>Als N\u00e4chstes werfen wir einen Blick auf die Pakete und Methoden, die mit der Ver\u00f6ffentlichung von Laravel 10 abgeschafft wurden.<\/p>\n<h4>Laravel 10 verabschiedet sich von PHP 8.0<\/h4>\n<p>Das Laravel-Framework stellt in Laravel 10 die Unterst\u00fctzung f\u00fcr PHP 8.0 ein. Wenn du deine Anwendung auf Laravel 10 aktualisieren m\u00f6chtest, musst du daher zuerst die PHP-Version auf <a href=\"https:\/\/kinsta.com\/de\/blog\/php-8-1\/\">PHP 8.1<\/a> oder <a href=\"https:\/\/kinsta.com\/de\/blog\/php-8-2\/\">PHP 8.2<\/a> aktualisieren.<\/p>\n<h4>Entfernung veralteter Methoden<\/h4>\n<p>Die <a href=\"https:\/\/laravel.com\/docs\/10.x\/upgrade\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel-Dokumentation<\/a> wird mit allen \u00c4nderungen und wichtigen veralteten Methoden aktualisiert. Wenn du ein aktuelles Projekt auf Laravel 10 umstellen willst, sollte jeder Code, der eine veraltete Methode verwendet, in einem neuen Ansatz umgeschrieben werden, um das gleiche Ergebnis zu erzielen.<\/p>\n<p>Hier ist eine Liste mit einigen der veralteten Methoden:<\/p>\n<ul>\n<li>Die Methode <code>Route::home<\/code> (veraltet in Laravel 9)<\/li>\n<li>Funktionen und Methoden rund um <code>dispatchNow<\/code>, nun veraltet, um Entwickler zu ermutigen, die Methode <a href=\"https:\/\/laravel.com\/docs\/10.x\/queues#synchronous-dispatching\" target=\"_blank\" rel=\"noopener noreferrer\"><code>dispatchSync<\/code><\/a>\u00a0zu nutzen, die einzige unterst\u00fctzte Methode f\u00fcr den sofortigen Dispatch<\/li>\n<li>Die Methode <code>getBaseQuery<\/code>, die ein \u00c4quivalent zu <code>toBase<\/code> hat<\/li>\n<li>Die Klasse <code>MaintenanceModeException<\/code><\/li>\n<li>Die <code>MocksApplicationServices<\/code> Eigenschaft<\/li>\n<li>Die <code>Mail::failures<\/code> Methode des Mail Fake<\/li>\n<li>Die Eigenschaft <code>$dates<\/code> (verwende <a href=\"https:\/\/laravel.com\/docs\/9.x\/eloquent-mutators#attribute-casting\" target=\"_blank\" rel=\"noopener noreferrer\"><code>$casts<\/code><\/a> stattdessen)<\/li>\n<li>Die <code>assertTimesSent()<\/code> Methode<\/li>\n<li>Unterst\u00fctzung f\u00fcr Predis 1 und DBAL 2<\/li>\n<li>Alle damit verbundenen Verwerfungen in <code>doctrine\/dbal<\/code> seit Laravel die Unterst\u00fctzung f\u00fcr Version 2 eingestellt hat<\/li>\n<\/ul>\n<h2>Wie man Laravel 10 installiert<\/h2>\n<p>Das Laravel-Kernteam hat daf\u00fcr gesorgt, dass alle Entwicklerinnen und Entwickler in verschiedenen Umgebungen problemlos auf das Framework zugreifen k\u00f6nnen. Daher gibt es verschiedene M\u00f6glichkeiten, Laravel 10 auf deinem Rechner zu installieren. Es steht dir v\u00f6llig frei, die f\u00fcr dich am besten geeignete zu w\u00e4hlen.<\/p>\n<h3>Laravel 10 auf MacOS installieren<\/h3>\n<p>Mit <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-docker\/\">Docker<\/a> und <a href=\"https:\/\/laravel.com\/docs\/10.x\/sail\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Sail<\/a> kannst du ganz einfach mit Laravel 10 auf MacOS starten. Du kannst den folgenden Terminal-Befehl in dem Verzeichnis ausf\u00fchren, in dem du die Anwendung installieren m\u00f6chtest. Beachte dabei, dass nur alphanumerische Zeichen, Bindestriche und Unterstriche f\u00fcr den Namen der Anwendung erlaubt sind:<\/p>\n<pre><code class=\"language-bash\">curl -s \"https:\/\/laravel.build\/example-kinsta-app\" | bash<\/code><\/pre>\n<p>Nachdem der Installationsprozess abgeschlossen ist, gehst du in das Projektverzeichnis und verwendest Sail, um dein neues Projekt zu starten, indem du den folgenden Befehl im Terminal eingibst:<\/p>\n<pre><code class=\"language-bash\">.\/vendor\/bin\/sail up<\/code><\/pre>\n<p>Sail verwendet seine integrierte L\u00f6sung f\u00fcr die Ausf\u00fchrung deines Laravel-Projekts mit Docker, und sobald es fertig ist, ist deine Anwendung auf <code>http:\/\/localhost<\/code> bereit.<\/p>\n<h3>Laravel 10 auf Windows 10 und 11 installieren<\/h3>\n<p><a href=\"https:\/\/docs.docker.com\/desktop\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker Desktop<\/a> kann verwendet werden, um Laravel 10 schnell unter Windows zu installieren. Unabh\u00e4ngig davon, ob du Windows 10 oder 11 verwendest, musst du zun\u00e4chst eine der beiden folgenden Optionen auf deinem Rechner aktivieren:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/install\" target=\"_blank\" rel=\"noopener noreferrer\">Windows Subsystem f\u00fcr Linux 2 (WSL2)<\/a><\/strong> ist eine Funktion des Windows-Betriebssystems, mit der du ein Linux-Dateisystem und Linux-Befehlszeilentools direkt unter Windows ausf\u00fchren kannst.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/en-us\/virtualization\/hyper-v-on-windows\/quick-start\/enable-hyper-v\" target=\"_blank\" rel=\"noopener noreferrer\">Hyper-V Backend-Funktion<\/a><\/strong> erm\u00f6glicht es dir, eine Softwareversion eines Computers, eine so genannte virtuelle Maschine, zu erstellen und zu betreiben.<\/li>\n<\/ul>\n<p>Sobald du alle <a href=\"https:\/\/docs.docker.com\/desktop\/install\/windows-install\/#install-docker-desktop-on-windows\" target=\"_blank\" rel=\"noopener noreferrer\">Docker-Anforderungen<\/a> erf\u00fcllt hast, kannst du den folgenden Befehl in deinem Terminal ausf\u00fchren:<\/p>\n<pre><code class=\"language-bash\">curl -s https:\/\/laravel.build\/example-kinsta-app | bash<\/code><\/pre>\n<p>Verwende dann Sail, um deine Anwendung auf <code><a href=\"http:\/\/localhost\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/localhost<\/a><\/code>\u00a0abzuspielen, indem du den folgenden Befehl im Stammverzeichnis deines neu installierten Laravel 10-Projekts eingibst:<\/p>\n<pre><code class=\"language-bash\">.\/vendor\/bin\/sail up<\/code><\/pre>\n<p>Nebenbei bemerkt, bevorzugen viele Entwicklerinnen und Entwickler Linux gegen\u00fcber anderen Betriebssystemen, da sie damit effizienter und schneller arbeiten k\u00f6nnen. Mit WSL kannst du die Sicherheit, Leistung und Spielekompatibilit\u00e4t von <a href=\"https:\/\/ubuntu.com\/tutorials\/install-ubuntu-on-wsl2-on-windows-10#1-overview\" target=\"_blank\" rel=\"noopener noreferrer\">Ubuntu<\/a> genie\u00dfen. Ubuntu ist eine Linux-Distribution oder Version von Linux, die f\u00fcr ihre Benutzerfreundlichkeit und einfache Bedienung bekannt ist.<\/p>\n<p>Wir empfehlen dir, <a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Visual Studio Code<\/a> zu verwenden und die offizielle Microsoft <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode-remote.remote-wsl\" target=\"_blank\" rel=\"noopener noreferrer\">WSL-Erweiterung<\/a> zu installieren, damit du jeden Ordner im Windows Subsystem f\u00fcr Linux \u00f6ffnen und die Vorteile des gesamten Funktionsumfangs von vscode nutzen kannst. Au\u00dferdem ist die <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode-remote.vscode-remote-extensionpack\" target=\"_blank\" rel=\"noopener noreferrer\">Remote Development-Erweiterung<\/a> eine weitere Option, auf die in der Laravel-Dokumentation hingewiesen wird.<\/p>\n<h3>Laravel 10 mit Composer installieren<\/h3>\n<p>Egal, ob du macOS oder Windows verwendest, mit Composer kannst du Laravel 10 im Handumdrehen zum Laufen bringen.<\/p>\n<p>Zun\u00e4chst musst du sicherstellen, dass du PHP \u2264 8.1, Node, npm und Composer auf deinem Rechner installiert hast.<\/p>\n<ul>\n<li><strong>F\u00fcr macOS:<\/strong> Composer kann mit <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener noreferrer\">Homebrew<\/a> installiert werden.<\/li>\n<li><strong>F\u00fcr Windows:<\/strong> Die neueste stabile Version von Composer kannst du von der <a href=\"https:\/\/getcomposer.org\/doc\/00-intro.md#installation-windows\" target=\"_blank\" rel=\"noopener noreferrer\">offiziellen Composer-Website<\/a> herunterladen.<\/li>\n<\/ul>\n<p>Danach kannst du den Laravel Installer global installieren und ihn f\u00fcr die Installation deiner neuen Laravel 10 Anwendung verwenden:<\/p>\n<pre><code class=\"language-bash\">composer global require laravel\/installer\nlaravel new example-kinsta-app<\/code><\/pre>\n<p>Oder du kannst eine neue Laravel 10-Anwendung direkt nur mit Composer erstellen:<\/p>\n<pre><code class=\"language-bash\">composer create-project laravel\/laravel example-kinsta-app<\/code><\/pre>\n<h2>So installierst du Laravel 11<\/h2>\n<p>Bis zur Ver\u00f6ffentlichung von Laravel 11 ist es noch ein Jahr hin. Aber Laravel 11 ist schon jetzt verf\u00fcgbar, damit du seine Funktionen testen kannst. Es ist nicht nur verf\u00fcgbar, sondern enth\u00e4lt auch <a href=\"https:\/\/github.com\/laravel\/framework\/pulls?q=is%3Apr+is%3Amerged+%5B11.x%5D+in%3Atitle\" target=\"_blank\" rel=\"noopener noreferrer\">einige zusammengef\u00fchrte PRs<\/a> auf GitHub, wie z.B. die Abschaffung der PHP 8.1 Unterst\u00fctzung.<\/p>\n<p>Die <code>--dev<\/code> Flagge im Laravel Installer installiert den Master-Zweig aus dem <code>laravel\/laravel<\/code> Repository. Jetzt, wo Laravel 10 verf\u00fcgbar ist, wird auch Laravel 11 auf dem Master-Zweig verf\u00fcgbar sein. Wenn du den Laravel Installer verwendest, musst du nur diesen Befehl in deinem Terminal ausf\u00fchren:<\/p>\n<pre><code class=\"language-php\">laravel new example-kinsta-app --dev<\/code><\/pre>\n<p>Oder, wenn du lieber den <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a> verwendest:<\/p>\n<pre><code class=\"language-php\">composer create-project --prefer-dist laravel\/laravel example-kinsta-app dev-master<\/code><\/pre>\n<p>Um den Composer-Befehl besser zu verstehen, findest du hier eine kurze Erkl\u00e4rung:<\/p>\n<ul>\n<li><strong><code>laravel\/laravel<\/code>:<\/strong> Das Paket f\u00fcr die Laravel-Installation<\/li>\n<li><strong><code>example-kinsta-app<\/code>:<\/strong> Das neue Verzeichnis f\u00fcr dein neues Projekt (kann ge\u00e4ndert werden)<\/li>\n<li><strong><code>dev-master<\/code>:<\/strong> Die n\u00e4chste Version von Laravel (in diesem Fall Laravel 11)<\/li>\n<\/ul>\n<p>Nach der Installation von Laravel 11 kannst du die Version best\u00e4tigen, indem du in das neue Verzeichnis <strong>example-kinsta-app<\/strong> navigierst und diesen Artisan-Befehl ausf\u00fchrst:<\/p>\n<pre><code class=\"language-php\">$ php artisan --version\nLaravel Framework 11.x-dev<\/code><\/pre>\n<h2>So aktualisierst du ein Projekt auf Laravel 10<\/h2>\n<p>Spielst du mit dem Gedanken auf Laravel 10 zu aktualisieren? Das Laravel-Kernteam arbeitet hart an der Dokumentation, um eine nahtlose und unkomplizierte Upgrade-Anleitung zu erstellen, die alle m\u00f6glichen \u00c4nderungen ber\u00fccksichtigt. Sieh dir den <a href=\"https:\/\/laravel.com\/docs\/master\/upgrade#upgrade-10.0\" target=\"_blank\" rel=\"noopener noreferrer\">offiziellen Laravel 10 Upgrade Guide<\/a> an.<\/p>\n<p>Du solltest auch <a href=\"https:\/\/laravelshift.com\/shifts\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Shift<\/a> im Auge behalten, nachdem Laravel 10 ver\u00f6ffentlicht wurde. Laravel Shift bietet einen einfachen und automatisierten Ansatz f\u00fcr das Upgrade deiner Laravel-Version.<\/p>\n<h2>Wie man Laravel 10-Projekte einsetzt<\/h2>\n<p>Das Deployment von Laravel 10 unterscheidet sich nicht vom <a href=\"https:\/\/docs.sevalla.com\/templates\/overview#laravel\">Deployment von Laravel 9 Projekten<\/a>.<\/p>\n<p>Hier sind die Serveranforderungen:<\/p>\n<ul>\n<li>PHP \u2264 8.1<\/li>\n<li>Ctype PHP-Erweiterung<\/li>\n<li>cURL PHP-Erweiterung<\/li>\n<li>DOM PHP-Erweiterung<\/li>\n<li>Fileinfo PHP-Erweiterung<\/li>\n<li>Mbstring PHP-Erweiterung<\/li>\n<li>OpenSSL PHP-Erweiterung<\/li>\n<li>PCRE PHP-Erweiterung<\/li>\n<li>PDO PHP-Erweiterung<\/li>\n<li>Tokenizer PHP-Erweiterung<\/li>\n<li>XML PHP-Erweiterung<\/li>\n<li>Filter PHP-Erweiterung<\/li>\n<li>Hash PHP-Erweiterung<\/li>\n<li>Session PHP-Erweiterung<\/li>\n<\/ul>\n<p>Du kannst <a href=\"https:\/\/sevalla.com\/application-hosting\/\">dein Laravel 10-Projekt<\/a> in wenigen Minuten auf Kinsta bereitstellen und hosten, da Laravel eines der vielen <a href=\"https:\/\/docs.sevalla.com\/applications\/reference\/faqs\">unterst\u00fctzten Frameworks<\/a> f\u00fcr gehostete Anwendungen ist.<\/p>\n<h3>Bereitstellen von Laravel 10 auf Kinsta: Schritt-f\u00fcr-Schritt-Anleitung<\/h3>\n<p><a href=\"https:\/\/sevalla.com\/application-hosting\/\">Das Hosten und Bereitstellen deiner Anwendungen auf Kinsta<\/a> hat mehrere Vorteile, u.a. musst du dich nicht um die Konfiguration der Bereitstellung k\u00fcmmern.<\/p>\n<p>Kinsta bietet ein benutzerfreundliches und leistungsstarkes Tool f\u00fcr die Bereitstellung von Anwendungen, die Verbindung zu Datenbanken und die \u00dcberwachung der Live-Performance. Dieses Tool hei\u00dft <a href=\"https:\/\/kinsta.com\/de\/mykinsta\/\">MyKinsta<\/a>. In diesem Abschnitt f\u00fchren wir dich durch die Schritte, mit denen du eine Laravel 10-Anwendung bereitstellen kannst.<\/p>\n<h4>1. Bereite deine Anwendung vor<\/h4>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-22.png\" alt=\"Eine Beispielseite f\u00fcr eine Laravel 10-Anwendung, die oben \"Laravel Kinsta\" zeigt, gefolgt von einem Raster aus vier Inhaltsfeldern mit den Bezeichnungen \"Kinsta\", \"Laracasts\", \"Laravel News\" und \"Vibrand Ecosystem\"\" width=\"1024\" height=\"473\"><figcaption class=\"wp-caption-text\">Die Startseite einer Laravel 10-Anwendung, die auf Kinsta bereitgestellt wird<\/figcaption><\/figure>\n<p>Angenommen, du hast eine Laravel 10-Anwendung vor Ort, dann m\u00fcssen wir sicherstellen, dass ein <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-github\/\">GitHub-Repository f\u00fcr sie verf\u00fcgbar<\/a> ist. Wir werden dieses Repository sp\u00e4ter f\u00fcr die Bereitstellung der Anwendung nutzen.<\/p>\n<p>Du kannst eine <strong>.htaccess<\/strong>-Datei in das Stammverzeichnis deiner Anwendung einf\u00fcgen, die Folgendes enth\u00e4lt:<\/p>\n<pre><code class=\"language-bash\">&lt;IfModule mod_rewrite.c&gt;\nRewriteEngine On\nRewriteRule ^(.*)$ public\/$1 [L]\n&lt;\/IfModule&gt;<\/code><\/pre>\n<p>Bei Laravel leitet dies alle Anfragen an <strong>public\/index.php<\/strong> um. Bei Bedarf kannst du diesen Befehl jedoch beim Hinzuf\u00fcgen deiner Anwendung\u00a0(Schritt &#8222;<strong>Prozesse einrichten<\/strong>&#8222;) oder nach der Bereitstellung auf der Seite &#8222;<strong>Prozesse<\/strong>&#8220; der Anwendung aktualisieren. Du kannst folgendes verwenden:<\/p>\n<ul>\n<li><code>heroku-php-apache2 \/public<\/code><\/li>\n<li><code>php artisan serve --host 0.0.0.0 --port 8080<\/code><\/li>\n<\/ul>\n<h4>2. Anmelden bei MyKinsta<\/h4>\n<figure style=\"width: 999px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-23.png\" alt=\"Ein Login-Formular f\u00fcr MyKinsta, mit \"MyKinsta Login\" oben, gefolgt von den Feldern \"E-Mail\" und \"Passwort\", mit einer lila \"Login\"-Schaltfl\u00e4che am unteren Rand\" width=\"999\" height=\"674\"><figcaption class=\"wp-caption-text\">Die MyKinsta-Anmeldeseite<\/figcaption><\/figure>\n<p>Gehe auf die <a href=\"https:\/\/my.kinsta.com\/login?lang=de\" target=\"_blank\" rel=\"noopener noreferrer\">Anmeldeseite von MyKinsta<\/a> und gib deine E-Mail-Adresse und dein Passwort ein. Wenn du noch kein Konto hast, kannst du <a href=\"https:\/\/kinsta.com\/de\/anmelden\/?product_type=app-db\">ein neues Konto einrichten<\/a> und erh\u00e4ltst 20 US-Dollar Rabatt auf den ersten Monat deines <a href=\"https:\/\/kinsta.com\/de\/preise\/?plan=visits-business1#application-hosting\">Abonnements mit einem beliebigen Preisplan<\/a>.<\/p>\n<h4>3. Autorisiere Kinsta auf GitHub<\/h4>\n<p>Sobald du dich eingeloggt hast, wirst du feststellen, dass du im Dashboard die M\u00f6glichkeit hast, <a href=\"https:\/\/kinsta.com\/de\/blog\/cloud-plattform-fuer-entwickler\/#wp\">eine WordPress-Site<\/a>, eine <a href=\"https:\/\/kinsta.com\/de\/blog\/cloud-plattform-fuer-entwickler\/#app\">Anwendung<\/a> oder eine <a href=\"https:\/\/kinsta.com\/de\/blog\/cloud-plattform-fuer-entwickler\/#wp\">Datenbank zu erstellen<\/a>. Wir klicken auf die Schaltfl\u00e4che <strong>GitHub verbinden<\/strong>, um uns <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">mit GitHub zu verbinden<\/a>.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-24.png\" alt=\"Ein Teil des MyKinsta-Dashboards, das drei rechteckige Kacheln zeigt: \"WordPress-Site\" mit der Aktionsschaltfl\u00e4che \"Site erstellen\", \"Anwendung\" mit der Aktionsschaltfl\u00e4che \"GitHub verbinden\" und \"Datenbank\" mit der Aktionsschaltfl\u00e4che \"Datenbank erstellen\"\" width=\"1024\" height=\"430\"><figcaption class=\"wp-caption-text\">Das MyKinsta Dashboard<\/figcaption><\/figure>\n<p>Als n\u00e4chstes klickst du auf die Schaltfl\u00e4che <strong>Mit GitHub fortfahren<\/strong>. Wenn du noch nicht bei GitHub eingeloggt bist, wird dir die M\u00f6glichkeit angezeigt, dich einzuloggen. Dann kannst du der Kinsta-GitHub-Anwendung den Zugriff auf dein GitHub-Konto erlauben, indem du <strong>Kinsta autorisieren<\/strong> w\u00e4hlst.<\/p>\n<p>Zum Schluss leitet GitHub deinen Browser zu MyKinsta weiter, damit du mit der Einrichtung der Anwendung fortfahren kannst.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-25.png\" alt=\"Ein modales Fenster mit der Meldung \"GitHub Integration: Verbinde Kinsta hier mit deinem GitHub-Namensraum, um deine bestehenden Repositories zu importieren\" mit einer wei\u00dfen Schaltfl\u00e4che \"Abbrechen\" und einer lila Schaltfl\u00e4che \"Mit GitHub fortfahren\"\" width=\"1024\" height=\"271\"><figcaption class=\"wp-caption-text\">Verbinden von MyKinsta mit GitHub<\/figcaption><\/figure>\n<p>Nachdem du mit GitHub verbunden bist, wird das Popup\/Modal <strong>Anwendung hinzuf\u00fcgen<\/strong> angezeigt, das ein Dropdown-Men\u00fc zur Auswahl eines GitHub-Repositorys enth\u00e4lt. Klicke auf das Feld GitHub-Repository und w\u00e4hle im Dropdown-Men\u00fc <strong>GitHub-Berechtigungen bearbeiten<\/strong>.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-26.png\" alt=\"Das Formular \"Antrag hinzuf\u00fcgen\" in MyKinsta, das sich auf den Unterabschnitt \"Antragsdetails\" konzentriert, mit dem Text \"Zweig ausw\u00e4hlen\", gefolgt von zwei Feldern: \"GitHub-Repository\" und \"Standard-Zweig\"\" width=\"1024\" height=\"430\"><figcaption class=\"wp-caption-text\">Hinzuf\u00fcgen einer Anwendung zu MyKinsta<\/figcaption><\/figure>\n<p>Dadurch \u00f6ffnet sich in deinem Browser ein neuer Tab mit der GitHub-Webseite, auf der du ausw\u00e4hlen kannst, auf welche Daten Kinsta zugreifen darf. Anstatt den Zugriff auf alle Repositories freizugeben, solltest du nur die Repositories ausw\u00e4hlen, die Kinsta nutzen soll.<\/p>\n<p>Klicke auf <strong>Nur Repositories ausw\u00e4hlen<\/strong> und w\u00e4hle das Repository aus, das du bereitstellen m\u00f6chtest.<\/p>\n<figure style=\"width: 674px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-27.png\" alt=\"Es erscheint die Aufforderung \"Kinsta installieren\" mit den Optionen \"Alle Repositories\" oder \"Nur ausgew\u00e4hlte Repositories\", gefolgt von einer gr\u00fcnen Schaltfl\u00e4che \"Installieren\"\" width=\"674\" height=\"1024\"><figcaption class=\"wp-caption-text\">Kinsta den Zugriff auf GitHub gew\u00e4hren<\/figcaption><\/figure>\n<p>Klicke dann auf <strong>Installieren<\/strong>, und schon bist du fertig!<\/p>\n<p>Wenn du zu MyKinsta zur\u00fcckkehrst und auf das Feld <strong>GitHub-Repository<\/strong> klickst, sollte das autorisierte Repository sichtbar sein. Au\u00dferdem kannst du das Kontrollk\u00e4stchen <strong>Automatische Bereitstellung bei \u00dcbergabe<\/strong> aktivieren, damit MyKinsta deine Anwendung automatisch bereitstellt, sobald du \u00c4nderungen am GitHub-Repository vornimmst.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-28.png\" alt=\"Der Anwendungsbereich \"Zweig ausw\u00e4hlen\" in MyKinsta mit den beiden Feldern \"GitHub-Repository\" und \"Standardzweig\" sowie einem angekreuzten Kontrollk\u00e4stchen \"Automatische Bereitstellung bei \u00dcbergabe\"\" width=\"1024\" height=\"287\"><figcaption class=\"wp-caption-text\">Ausw\u00e4hlen eines Repository-Zweiges f\u00fcr MyKinsta<\/figcaption><\/figure>\n<h4>4. Grundlegende Details zur Anwendung hinzuf\u00fcgen<\/h4>\n<p>Jetzt kannst du der Anwendung einen Namen geben, der nur im Dashboard verwendet wird, und aus 25 Rechenzentren ausw\u00e4hlen, so dass du deine Anwendung an dem geografischen Ort platzieren kannst, der deinen Nutzern am n\u00e4chsten liegt. Wenn du Hilfe bei der Auswahl des idealen <a href=\"https:\/\/kinsta.com\/de\/docs\/service-information\/rechenzentrums-standorte\/\">Rechenzentrums<\/a> f\u00fcr deine Anwendung brauchst, schau dir unseren Leitfaden zur <a href=\"https:\/\/kinsta.com\/de\/docs\/service-information\/rechenzentrums-standorte\/\">Auswahl des richtigen Rechenzentrumsstandorts<\/a> an.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-29.png\" alt=\"Der Abschnitt \"Grundlegende Details\" des MyKinsta-Anwendungserstellungsprozesses mit den Feldern \"Anwendungsname\" und \"Standort des Rechenzentrums\"\" width=\"1024\" height=\"423\"><figcaption class=\"wp-caption-text\">Hinzuf\u00fcgen der grundlegenden Details einer Anwendung<\/figcaption><\/figure>\n<h4>5. Umgebungsvariablen hinzuf\u00fcgen<\/h4>\n<p>Im folgenden Abschnitt geht es um das Hinzuf\u00fcgen von <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-eine-umgebungsvariable\/\">Umgebungsvariablen<\/a>. Die wichtigste Variable ist <code>APP_KEY<\/code>.<\/p>\n<p>Wenn du noch keinen Schl\u00fcssel in deiner .env-Datei hast, kannst du ihn mit einem <a href=\"https:\/\/generate-random.org\/laravel-key-generator\" target=\"_blank\" rel=\"noopener noreferrer\">Online-Laravel-Schl\u00fcsselgenerator<\/a> erzeugen. Dann f\u00fcgst du <code>APP_KEY<\/code> in das Feld <strong>Key 1<\/strong> und den generierten App-Schl\u00fcssel in das Feld <strong>Value 1<\/strong> ein.<\/p>\n<p>Zum Schluss w\u00e4hlst du <strong>Available during runtime<\/strong> und <strong>Available during build process<\/strong>.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-30.png\" alt=\"Der Anwendungsbereich \"Umgebungsvariablen\" in MyKinsta mit den Feldern f\u00fcr \"Schl\u00fcssel 1\" und \"Wert 1\" sowie den Kontrollk\u00e4stchen f\u00fcr \"Zur Laufzeit verf\u00fcgbar\" und \"W\u00e4hrend des Build-Prozesses verf\u00fcgbar\"\" width=\"1024\" height=\"408\"><figcaption class=\"wp-caption-text\">Hinzuf\u00fcgen von Umgebungsvariablen in MyKinsta<\/figcaption><\/figure>\n<h4>5. Build-Umgebung konfigurieren<\/h4>\n<p>Der Clou an der Sache ist, dass du gar nichts konfigurieren musst! Du kannst fortfahren, indem du auf die Schaltfl\u00e4che <strong>Weiter<\/strong> klickst, und voil\u00e0: Du hast die Konfiguration der Build-Umgebung abgeschlossen. Wenn du jedoch die Build-Ressourcen verbessern m\u00f6chtest, um eine schnellere Erstellung zu gew\u00e4hrleisten, kannst du im Feld <strong>Build-Ressourcen<\/strong> deine bevorzugte Auswahl treffen.<\/p>\n<p>Das Feld <strong>Build-Pfad<\/strong> ist optional. Du kannst es leer lassen und MyKinsta wird den Stammordner verwenden.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-31.png\" alt=\"Der Anwendungsbereich \"Build Environment\" in MyKinsta, mit Feldern und Auswahlboxen f\u00fcr \"Build resources\", \"Set up container image automatically\" und \"Use Dockerfile to set up container image\"\" width=\"1024\" height=\"742\"><figcaption class=\"wp-caption-text\">Konfigurieren der Build-Umgebung f\u00fcr die Anwendung<\/figcaption><\/figure>\n<h4>6. Prozesse und Zahlungsmethode einrichten<\/h4>\n<p>Im Abschnitt Ressourcen f\u00fcllst du jedes Feld mit den folgenden Informationen aus:<\/p>\n<ul>\n<li><strong>Prozessname:<\/strong> Der Name, der in der Liste der Prozesse in deiner Anwendung angezeigt wird.<\/li>\n<li><strong>Prozesstyp:<\/strong> W\u00e4hle ihn sorgf\u00e4ltig aus, denn er kann nicht mehr ge\u00e4ndert werden, wenn er einmal festgelegt ist. Du kannst jedoch nach der Bereitstellung auf der Seite Prozesse deiner Anwendung weitere Prozesse hinzuf\u00fcgen und \u00e4ndern, z. B. einen Hintergrundjob.<\/li>\n<li><strong>Startbefehl:<\/strong> Der &#8222;Start&#8220;-Befehl f\u00fcr deinen Prozess (nicht erforderlich).<\/li>\n<li><strong>Pod-Gr\u00f6\u00dfe:<\/strong> Die Pod-Kapazit\u00e4t, die du voraussichtlich f\u00fcr deinen Prozess ben\u00f6tigst.<\/li>\n<li><strong>Anzahl der Instanzen:<\/strong> Die Anzahl der Instanzen f\u00fcr deinen Prozess (max. 50).<\/li>\n<\/ul>\n<p>Du kannst auch einfach auf <strong>Weiter<\/strong> klicken, ohne das Feld <strong>Startbefehl<\/strong> auszuf\u00fcllen, da Kinsta den erforderlichen Befehl beim ersten Einsatz automatisch erkennt.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-32.png\" alt=\"Der Abschnitt \"Anwendung hinzuf\u00fcgen: Richte deinen Prozess ein\" in MyKinsta, mit Feldern f\u00fcr \"Prozessname\", \"Prozesstyp\", \"Startbefehl\", \"Podgr\u00f6\u00dfe\" und \"Instanzanzahl\"\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">Einrichten der Prozesse der Anwendung<\/figcaption><\/figure>\n<p>Im letzten Schritt \u00fcberpr\u00fcfst du die monatlichen Nutzungskosten, die f\u00fcr deine App berechnet wurden, und best\u00e4tigst dann deine Zahlungsmethode. Wenn du fertig bist, klicke auf die Schaltfl\u00e4che <strong>Zahlungsmethode best\u00e4tigen<\/strong>.<\/p>\n<figure style=\"width: 902px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-33.png\" alt=\"Der Bildschirm mit den Zahlungsdetails in MyKinsta zeigt \"Monatliche Nutzungskosten\" und \"Zahlungsmethode\", wobei letztere eine Visa-Karte auff\u00fchrt\" width=\"902\" height=\"744\"><figcaption class=\"wp-caption-text\">Best\u00e4tige die Zahlungsdetails<\/figcaption><\/figure>\n<p>Und schon bist du fertig! Kinsta erledigt die ganze Arbeit im Hintergrund, um deine Anwendung zu bedienen.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-34.png\" alt=\"Die Registerkarte \"Anwendungen\" in Mykinsta zeigt eine bereitgestellte Anwendung mit dem Namen \"example-kinsta-app\" zusammen mit ihrer Quelle, ihrem Typ und dem Datum der letzten \u00c4nderung\" width=\"1024\" height=\"335\"><figcaption class=\"wp-caption-text\">Lade den Bereitstellungsprozess der Anwendung<\/figcaption><\/figure>\n<p>Dann hast du Zugriff auf alle Details des Bereitstellungsprozesses sowie auf die tempor\u00e4re Live-App-URL, die du sp\u00e4ter durch deine eigene Domain ersetzen kannst.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-35.png\" alt=\"Der Abschnitt \"Bereitstellungsdetails\" in MyKinsta nach erfolgreicher Bereitstellung der Anwendung, der die Installationsinformationen der Anwendung zusammen mit den Build- und Bereitstellungsverifizierungshinweisen anzeigt\" width=\"1024\" height=\"746\"><figcaption class=\"wp-caption-text\">Erfolgreiche Bereitstellung der Laravel 10-Anwendung auf MyKinsta<\/figcaption><\/figure>\n<p>Deine Laravel 10-Anwendung ist jetzt live auf Kinsta, aber was ist, wenn du eine \u00c4nderung in der Produktion vornehmen musst? Was ist, wenn wir das <code>href<\/code> Attribut eines Anker-Tags \u00e4ndern wollen?<\/p>\n<p>Da wir die Option <strong>Automatisches Deployment bei Commit<\/strong> aktiviert haben, erkennt MyKinsta alle \u00c4nderungen, die wir am deployten Zweig vornehmen, und aktualisiert die Live-Anwendung automatisch entsprechend.<\/p>\n<h4>7. Laravel 10 mit der MySQL-Datenbank verbinden<\/h4>\n<p>Jetzt, wo wir unsere Laravel 10-Anwendung bereitgestellt haben, k\u00f6nnen wir m\u00fchelos eine Datenbank erstellen und sie mit unserer Anwendung verkn\u00fcpfen. Dazu musst du nur im linken Navigationsmen\u00fc auf <strong>Anwendungen<\/strong> klicken, dann auf <strong>Dienst hinzuf\u00fcgen<\/strong> und <strong>Datenbank<\/strong> ausw\u00e4hlen.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-36.png\" alt=\"Die Option \"Datenbank erstellen\" in MyKinsta, mit Feldern f\u00fcr die Angabe der grundlegenden Informationen der Datenbank, gefolgt von einer lila Schaltfl\u00e4che \"Datenbank erstellen\"\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">Hinzuf\u00fcgen einer neuen Datenbank in MyKinsta<\/figcaption><\/figure>\n<p>Nachdem du alle Felder ausgef\u00fcllt hast, klicke auf <strong>Datenbank erstellen<\/strong>. Damit wird eine neue Datenbank erstellt, die f\u00fcr interne und externe Verbindungen bereit ist. In unserem Szenario ben\u00f6tigen wir eine interne Verbindung zu dem Laravel 10-Projekt, das wir bereitgestellt haben.<\/p>\n<p>Um das zu erreichen, musst du nur auf <strong>Anwendung hinzuf\u00fcgen<\/strong> im Abschnitt <strong>Interne Verbindungen<\/strong> klicken und deine Anwendung ausw\u00e4hlen. Du kannst das Kontrollk\u00e4stchen <strong>Umgebungsvariablen zur Anwendung hinzuf\u00fcgen<\/strong> aktivieren und MyKinsta wird alle <code>.env<\/code> Variablen ausf\u00fcllen, die deine Anwendung ben\u00f6tigt.<\/p>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-37.png\" alt=\"Die Option \"Interne Verbindung hinzuf\u00fcgen\" in MyKinsta f\u00fcr die Verbindung einer Datenbank mit einer Anwendung, mit Schl\u00fcsselwertfeldern, gefolgt von einer Schaltfl\u00e4che \"Verbindung hinzuf\u00fcgen\"\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">Verbinden einer Datenbank mit einer Laravel 10 Anwendung<\/figcaption><\/figure>\n<p>Damit ist deine Laravel 10-Anwendung implementiert und mit einer Datenbank verbunden.<\/p>\n<h2>Wie du zu Laravel 10 beitr\u00e4gst<\/h2>\n<p>Obwohl Laravel von einem Kernteam gepflegt wird, wird es von \u00fcber <a href=\"https:\/\/github.com\/laravel\/framework\/graphs\/contributors\" target=\"_blank\" rel=\"noopener noreferrer\">3.000 freiwilligen Mitarbeitern<\/a> aktiv weiterentwickelt.<\/p>\n<p>Willst du einer dieser Mitwirkenden sein und die Zukunft von Laravel mitgestalten? Wenn du mit Ja antwortest, kannst du Entwicklern auf der ganzen Welt helfen, indem du eine neue Funktion hinzuf\u00fcgst, einen Fehler behebst oder sogar einen verwirrenden Teil der Dokumentation umschreibst.<\/p>\n<p>Um zu Laravel 10 beizutragen, musst du Folgendes tun:<\/p>\n<ol>\n<li>Besuche das <a href=\"https:\/\/github.com\/laravel\/framework\/pulls?page=2&#038;q=is%3Apr+is%3Amerged+10.x\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub-Repository von Laravel<\/a> und sieh dir die Pull Requests an, die mit [10.x] im Titel gekennzeichnet sind. So bekommst du einen klaren \u00dcberblick \u00fcber alle Pull Requests f\u00fcr Laravel 10. Wenn einer der PRs den Beitrag anspricht, den du leisten wolltest, schau, ob du ihn verbessern kannst.<\/li>\n<li>Wenn dein geplanter Beitrag noch nicht von jemand anderem angesprochen wurde, kannst du selbst einen PR erstellen.<\/li>\n<li>Nicht alles ist es wert, der Codebasis des Frameworks hinzugef\u00fcgt zu werden. Bem\u00fche dich daher, nur Verbesserungen zu implementieren, die in Zukunft leicht zu pflegen sind und der gro\u00dfen Mehrheit der Laravel-Community helfen.<\/li>\n<li>Achte darauf, dass du dich an die <a href=\"https:\/\/laravel.com\/docs\/master\/contributions\" target=\"_blank\" rel=\"noopener noreferrer\">Beitragsrichtlinien von Laravel<\/a> h\u00e4ltst, damit du bessere Chancen hast, dass deine \u00c4nderungen in das Framework aufgenommen werden.<\/li>\n<\/ol>\n<p>Ein weiterer Grund, Laravel 10 zu lieben, ist, dass du mit Bug Hunts Geld f\u00fcr deine Beitr\u00e4ge gewinnen kannst! Wir sehen uns das als N\u00e4chstes an.<\/p>\n<h3>Laravel 10 Fehlerjagd-Wettbewerb<\/h3>\n<figure style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-20.png\" alt=\"Das Laravel 10-Logo, gefolgt von einem gr\u00fcnen Cartoon-Insekt mit grauen Streifen\" width=\"1024\" height=\"576\"><figcaption class=\"wp-caption-text\">Laravel 10 Fehlerjagd-Wettbewerb<\/figcaption><\/figure>\n<p>Laravel 10 hat einen tollen Wettbewerb ausgeschrieben, bei dem ein zuf\u00e4llig ausgew\u00e4hlter Teilnehmer die Chance hat, 1.000 Dollar zu gewinnen. Dies war der erste Wettbewerb dieser Art in der Geschichte von Laravel. Er soll die Community dazu ermutigen, versteckte Bugs in Laravel 10 zu finden und zu patchen.<\/p>\n<p>Die Regeln waren ganz einfach:<\/p>\n<ul>\n<li>Nur PRs, die im 10.x-Zweig des <code>laravel\/framework<\/code> Repository eingereicht wurden, konnten teilnehmen.<\/li>\n<li>Es wurden nur &#8222;echte&#8220; Fehlerbehebungen ber\u00fccksichtigt. Neue Funktionen, Refactoring und Tippfehlerbehebungen wurden nicht ber\u00fccksichtigt.<\/li>\n<li>Jede Fehlerbehebung muss durch einen Test unterst\u00fctzt werden.<\/li>\n<li>Die angenommenen Fehlerbehebungen wurden auf GitHub gekennzeichnet und ein zuf\u00e4lliger Gewinner wird nach Abschluss des Wettbewerbs bekannt gegeben.<\/li>\n<\/ul>\n<p>Der Wettbewerb war beendet, als die erste stabile Version von Laravel 10 am 14. Februar 2023 ver\u00f6ffentlicht wurde.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Bis jetzt scheint Laravel 10 sehr vielversprechend zu sein und wir sind gespannt, was es der PHP-Welt alles bringen wird.<\/p>\n\n<p>Wenn du nach weiteren <a href=\"https:\/\/kinsta.com\/de\/blog\/laravel-leistung\/\">M\u00f6glichkeiten suchst, die Leistung deiner Laravel-Anwendung zu verbessern<\/a>, solltest du einen Wechsel zu einem Premium-Hosting-Anbieter in Betracht ziehen. Die <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Application Hosting-L\u00f6sungen von Kinsta<\/a> geh\u00f6ren zu den schnellsten, sichersten und benutzerfreundlichsten der Branche. Sie wurden speziell f\u00fcr Entwickler entwickelt und bieten Produktionsoptimierung und 24\/7-Experten-Support durch unsere eigenen erfahrenen Entwickler.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hast du dich nach \u00fcber einem Jahrzehnt seit der Einf\u00fchrung des beliebten Laravel-Frameworks jemals gefragt: &#8222;Was kann Laravel PHP-Entwicklern noch bieten?&#8220; Wenn man bedenkt, wie sehr &#8230;<\/p>\n","protected":false},"author":266,"featured_media":59238,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[958],"class_list":["post-59237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-laravel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen<\/title>\n<meta name=\"description\" content=\"In diesem Artikel nehmen wir dich mit auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und frisch veralteten Methoden und Pakete von Laravel 10.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen\" \/>\n<meta property=\"og:description\" content=\"In diesem Artikel nehmen wir dich mit auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und frisch veralteten Methoden und Pakete von Laravel 10.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-21T12:42:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-29T05:22:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mostafa Said\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"In diesem Artikel nehmen wir dich mit auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und frisch veralteten Methoden und Pakete von Laravel 10.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mostafa Said\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"28\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/\"},\"author\":{\"name\":\"Mostafa Said\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996\"},\"headline\":\"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen\",\"datePublished\":\"2023-02-21T12:42:41+00:00\",\"dateModified\":\"2023-08-29T05:22:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/\"},\"wordCount\":5177,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/\",\"name\":\"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png\",\"datePublished\":\"2023-02-21T12:42:41+00:00\",\"dateModified\":\"2023-08-29T05:22:09+00:00\",\"description\":\"In diesem Artikel nehmen wir dich mit auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und frisch veralteten Methoden und Pakete von Laravel 10.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996\",\"name\":\"Mostafa Said\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/96bb303b019e8ddbdbaea885a36fee51?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/96bb303b019e8ddbdbaea885a36fee51?s=96&d=mm&r=g\",\"caption\":\"Mostafa Said\"},\"description\":\"I\u2019m Mostafa, a full-stack developer with a knack for all things Laravel, Inertia, and JavaScript frameworks. When I'm not coding, you can find me sharing my knowledge through tutorials, diving into hackathons (and winning a few), and spreading the love for tech by teaching what I've learned.\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/mostafasaid\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen","description":"In diesem Artikel nehmen wir dich mit auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und frisch veralteten Methoden und Pakete von Laravel 10.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/","og_locale":"de_DE","og_type":"article","og_title":"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen","og_description":"In diesem Artikel nehmen wir dich mit auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und frisch veralteten Methoden und Pakete von Laravel 10.","og_url":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2023-02-21T12:42:41+00:00","article_modified_time":"2023-08-29T05:22:09+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png","type":"image\/png"}],"author":"Mostafa Said","twitter_card":"summary_large_image","twitter_description":"In diesem Artikel nehmen wir dich mit auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und frisch veralteten Methoden und Pakete von Laravel 10.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Mostafa Said","Gesch\u00e4tzte Lesezeit":"28\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/"},"author":{"name":"Mostafa Said","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996"},"headline":"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen","datePublished":"2023-02-21T12:42:41+00:00","dateModified":"2023-08-29T05:22:09+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/"},"wordCount":5177,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/laravel-10\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/","url":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/","name":"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png","datePublished":"2023-02-21T12:42:41+00:00","dateModified":"2023-08-29T05:22:09+00:00","description":"In diesem Artikel nehmen wir dich mit auf eine Reise durch die neuen Funktionen, Fehlerbehebungen und frisch veralteten Methoden und Pakete von Laravel 10.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/laravel-10\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/02\/laravel-10-1.png","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-10\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/de\/thema\/laravel\/"},{"@type":"ListItem","position":3,"name":"Was ist neu in Laravel 10: Ein tiefer Einblick in die neuesten Updates und Funktionen"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996","name":"Mostafa Said","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/96bb303b019e8ddbdbaea885a36fee51?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/96bb303b019e8ddbdbaea885a36fee51?s=96&d=mm&r=g","caption":"Mostafa Said"},"description":"I\u2019m Mostafa, a full-stack developer with a knack for all things Laravel, Inertia, and JavaScript frameworks. When I'm not coding, you can find me sharing my knowledge through tutorials, diving into hackathons (and winning a few), and spreading the love for tech by teaching what I've learned.","url":"https:\/\/kinsta.com\/de\/blog\/author\/mostafasaid\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/59237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/266"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=59237"}],"version-history":[{"count":13,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/59237\/revisions"}],"predecessor-version":[{"id":60000,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/59237\/revisions\/60000"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/en"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/fr"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/de"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/dk"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/translations\/jp"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/59237\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/59238"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=59237"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=59237"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=59237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}