{"id":50317,"date":"2023-02-21T12:43:07","date_gmt":"2023-02-21T12:43:07","guid":{"rendered":"https:\/\/kinsta.com\/se\/?p=50317&#038;preview=true&#038;preview_id=50317"},"modified":"2023-09-21T09:12:19","modified_gmt":"2023-09-21T09:12:19","slug":"laravel-10","status":"publish","type":"post","link":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/","title":{"rendered":"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna"},"content":{"rendered":"<p>Nu har det g\u00e5tt \u00f6ver ett decennium sedan introduktionen av det mycket popul\u00e4ra <a href=\"https:\/\/kinsta.com\/se\/blog\/vad-ar-laravel\/\">ramverket Laravel<\/a>. Det har s\u00e4kert h\u00e4nt att du har undrat: &#8221;Vad mer kan Laravel erbjuda PHP-utvecklare?&#8221;<\/p>\n<p>Det har redan f\u00f6renklat PHP-utvecklingen f\u00f6r b\u00e5de nyb\u00f6rjare och professionella utvecklare. Vissa h\u00e4vdar till och med att det har f\u00e5tt utvecklare att tro att PHP \u00e4r det enklaste programmeringsspr\u00e5ket som finns.<\/p>\n\n<p>Har Laravel fortfarande fler \u00f6verraskningar i beredskap f\u00f6r <a href=\"https:\/\/kinsta.com\/blog\/laravel-developer\/\">Laravel-utvecklare<\/a>? Eller har man utt\u00f6mt alla m\u00f6jliga medel f\u00f6r att st\u00f6dja PHP-utvecklare?<\/p>\n<p>Vi vet \u00e5tminstone att Laravel 10 har mycket att erbjuda. Detta \u00e4r vad vi kommer att avsl\u00f6ja i den h\u00e4r artikeln. Nu tar vi med dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, korrigeringar och nyligen avskrivna metoder och paket.<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 Utgivningsschema<\/h2>\n<p>Laravels k\u00e4rnteam brukade sl\u00e4ppa tv\u00e5 st\u00f6rre versioner \u00e5rligen (en var sj\u00e4tte m\u00e5nad).<\/p>\n<p>Utgivningscykeln \u00e4ndrades dock n\u00e4r Taylor Otwell, skaparen av Laravel, <a href=\"https:\/\/blog.laravel.com\/updates-to-laravels-versioning-policy\" target=\"_blank\" rel=\"noopener noreferrer\">meddelade<\/a> att en enda st\u00f6rre version nu skulle sl\u00e4ppas varje \u00e5r. Som ett resultat s\u00e5 kunde k\u00e4rnteamet och Laravel\u2019s community \u00e4gna mer tid och arbete \u00e5t en specifik version av ramverket och inf\u00f6ra nya kraftfulla funktioner utan att g\u00f6ra n\u00e5gra banbrytande \u00e4ndringar.<\/p>\n<p>Laravel 10 var planerat att sl\u00e4ppas den 7 februari \u00e5r 2023, efter att <a href=\"https:\/\/kinsta.com\/se\/blog\/laravel-9\/\">Laravel 9<\/a>\u00a0hade sl\u00e4ppts den 8 februari \u00e5r 2022. Teamet beh\u00f6vde dock mer tid f\u00f6r att f\u00e4rdigst\u00e4lla sitt konstverk och Laravel 10 publicerades slutligen den 14 februari \u00e5r 2023.<\/p>\n<p>Laravel 11 f\u00f6rv\u00e4ntas nu sl\u00e4ppas under f\u00f6rsta kvartalet i februari \u00e5r 2024.<\/p>\n<p>Enligt <a href=\"https:\/\/laravel.com\/docs\/10.x\/releases#support-policy\" target=\"_blank\" rel=\"noopener noreferrer\">supportpolicyn<\/a>\u00a0s\u00e5 erbjuds det dessutom buggfixar i 18 m\u00e5nader och s\u00e4kerhetsuppdateringar i tv\u00e5 \u00e5r f\u00f6r alla Laravel-versioner.<\/p>\n<p>Nedan s\u00e5 f\u00f6ljer det f\u00f6rv\u00e4ntade schemat f\u00f6r felr\u00e4ttningar och s\u00e4kerhetsuppdateringar:<\/p>\n<ul>\n<li>Laravel 9 kommer att forts\u00e4tta att f\u00e5 buggfixar fram till den 8 augusti \u00e5r 2023 och s\u00e4kerhetsuppdateringar fram till den 6 februari \u00e5r 2024.<\/li>\n<li>Laravel 10 kommer att f\u00e5 buggfixar fram till den 6 augusti \u00e5r 2024 och s\u00e4kerhetsfixar fram till den 4 februari \u00e5r 2025.<\/li>\n<li>Laravel 11 f\u00f6rv\u00e4ntas f\u00e5 felr\u00e4ttningar fram till den 5 augusti \u00e5r 2025 och s\u00e4kerhetsr\u00e4ttningar fram till den 3 februari \u00e5r 2026.<\/li>\n<\/ul>\n<h2>B\u00f6r du uppgradera till Laravel 10?<\/h2>\n<p>Det \u00e4r viktigt att komma ih\u00e5g att du inte alltid beh\u00f6ver uppgradera din applikations Laravel-version till den senaste versionen s\u00e5 fort som en ny version sl\u00e4pps.<\/p>\n<p>Laravel \u00e4r ett ramverk med \u00f6ppen k\u00e4llkod. Detta inneb\u00e4r att varje g\u00e5ng som du installerar en ny Laravel-instans p\u00e5 din maskin s\u00e5 \u00e4ger du ramverkets kodbas. S\u00e5 \u00e4ven om den ramversion som din app anv\u00e4nder inte l\u00e4ngre st\u00f6ds kommer appen fortfarande att fungera; du m\u00e5ste bara underh\u00e5lla den sj\u00e4lv.<\/p>\n<p>Som ett resultat av detta s\u00e5 f\u00f6resl\u00e5s det generellt att stabiliteten i applikationen ska prioriteras framf\u00f6r ramuppgraderingar.<\/p>\n<p>Du b\u00f6r med andra ord \u00f6verv\u00e4ga att uppgradera till Laravel 10 n\u00e4r:<\/p>\n<ul>\n<li>du vill anv\u00e4nda dig av Laravel 10: Applikationen \u00e4r stabil med sin nuvarande version och fungerar utan problem.<\/li>\n<li>Den nya versionen antingen l\u00e4gger till en funktion som din applikation kr\u00e4ver eller \u00e5tg\u00e4rdar ett problem som din applikation upplever.<\/li>\n<li>Applikationen kommer att vara v\u00e4l testad innan uppgraderings\u00e4ndringarna skjuts in i produktionen.<\/li>\n<\/ul>\n<h2>Laravel 10\u2019s heta uppdateringar<\/h2>\n<p>\u00a0<\/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-21.png\" alt=\"Laravel 10.\" width=\"1024\" height=\"576\"><figcaption class=\"wp-caption-text\">Laravel 10.<\/figcaption><\/figure>\n<p>\u00a0<\/p>\n<p>Kinsta \u00e4r ett stort fan av Laravel. D\u00e4rf\u00f6r har vi samlat h\u00f6jdpunkterna i Laravel 10 i en enda artikel. Den kan du anv\u00e4nda som referens och guide f\u00f6r att anv\u00e4nda alla nya funktioner. Vi rekommenderar d\u00e4rf\u00f6r att du bokm\u00e4rker den h\u00e4r sidan och \u00e5terbes\u00f6ker den d\u00e5 och d\u00e5.<\/p>\n<h3>Nya funktioner och uppdateringar i Laravel 10<\/h3>\n<p>Det r\u00e5der ingen tvekan om att det mest sp\u00e4nnande med en ny version \u00e4r att nya funktioner l\u00e4ggs till. S\u00e5 vi ska b\u00f6rja med att ta en titt p\u00e5 de nya funktionerna och uppdateringarna i Laravel 10.<\/p>\n<h4>1. PHP 8.1: I hj\u00e4rtat av Laravel 10<\/h4>\n<p>PHP 8.1 \u00e4r den l\u00e4gsta erforderliga PHP-versionen i Laravel 10. Vissa PHP 8.1-funktioner, exempelvis readonly properties och array_is_list, anv\u00e4nds i Laravel 10.<\/p>\n<h4>2. St\u00f6d f\u00f6r PHP 8.2<\/h4>\n<p>PHP 8.2 sl\u00e4pptes den 8 december \u00e5r 2022, endast tv\u00e5 m\u00e5nader f\u00f6re Laravel 10\u2019s lanseringsdatum. Detta b\u00f6r dock inte hindra dig fr\u00e5n att anv\u00e4nda PHP 8.2-funktioner, eftersom Laravel 10 \u00e4r redo f\u00f6r PHP 8.2.<\/p>\n<p>Faktum \u00e4r att hela Laravel-ekosystemet, inklusive Forge, Vapor och Envoyer, har st\u00f6d f\u00f6r PHP 8.2, och du kan till och med anv\u00e4nda <a href=\"https:\/\/blog.laravel.com\/laravel-loves-php-82\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.2 med Laravel 9<\/a>. Hur h\u00e4ftigt \u00e4r inte det?!<\/p>\n<h4>3. Uppgradering av officiella Laravel-paket<\/h4>\n<p>Det \u00e4r inte bara ramverket som underh\u00e5lls professionellt och uppdateras regelbundet, utan \u00e4ven alla officiella paket och ekosystemet.<\/p>\n<p>Nedan s\u00e5 f\u00f6ljer en lista \u00f6ver de senaste officiella Laravel-paketen som har uppdaterats f\u00f6r att st\u00f6dja Laravel 10:<\/p>\n<ol>\n<li>Breeze<\/li>\n<li>Cashier Stripe<\/li>\n<li>Dusk<\/li>\n<li>Horizon<\/li>\n<li>Installer<\/li>\n<li>Jetstream<\/li>\n<li>Passport<\/li>\n<li>Pint<\/li>\n<li>Sail<\/li>\n<li>Scout<\/li>\n<li>Valet<\/li>\n<\/ol>\n<p><a href=\"https:\/\/kinsta.com\/se\/blog\/laravel-inertia\/\">Inertiajs 1.0.1<\/a> \u00e4r en annan godbit f\u00f6r Rails-, Vue-, React- och Svelte-fans och har ocks\u00e5 st\u00f6d f\u00f6r Laravel 10.<\/p>\n<h4>4. Uppgradering av Predis-versionen<\/h4>\n<p>Predis \u00e4r en robust <a href=\"https:\/\/kinsta.com\/se\/blog\/en-minnesdatabas\/\">Redis<\/a>-klient f\u00f6r PHP som kan hj\u00e4lpa dig att <a href=\"https:\/\/kinsta.com\/se\/blog\/laravel-cachning\/\">f\u00e5 ut s\u00e5 mycket som m\u00f6jligt av cachelagring<\/a> f\u00f6r att skapa en fantastisk anv\u00e4ndarupplevelse. Laravel st\u00f6dde tidigare b\u00e5de version 1 och 2, men fr\u00e5n och med Laravel 10 s\u00e5 st\u00f6der ramverket inte l\u00e4ngre Predis 1.<\/p>\n<p>\u00c4ven om Laravel-dokumentationen <a href=\"https:\/\/laravel.com\/docs\/10.x\/redis\" target=\"_blank\" rel=\"noopener noreferrer\">n\u00e4mner Predis<\/a> som paketet f\u00f6r interagering med Redis kan du \u00e4ven anv\u00e4nda det <a href=\"https:\/\/github.com\/phpredis\/phpredis\/\" target=\"_blank\" rel=\"noopener noreferrer\">officiella PHP-till\u00e4gget<\/a>. Detta till\u00e4gg tillhandah\u00e5ller ett API f\u00f6r kommunikation med Redis-servrar.<\/p>\n<h4>5. Inbyggda typdeklarationer<\/h4>\n<p>Laravel brukade anv\u00e4nda DocBlocks i sin skelettkod f\u00f6r att f\u00f6rtydliga vad en kod g\u00f6r och vilka typer av parametrar eller svar som man kan f\u00f6rv\u00e4nta sig. Men tack vare inbyggda typdeklarationer i Laravel 10 s\u00e5 kommer detta att f\u00f6r\u00e4ndras.<\/p>\n<p>Det b\u00e4sta s\u00e4ttet att f\u00f6rklara denna f\u00f6r\u00e4ndring \u00e4r med ett enkelt exempel. Ist\u00e4llet f\u00f6r att en funktion ser ut s\u00e5 h\u00e4r:<\/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; kommer den att se ut s\u00e5 h\u00e4r:<\/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>Den h\u00e4r \u00e4ndringen \u00e4r helt och h\u00e5llet till f\u00f6rm\u00e5n f\u00f6r utvecklaren, eftersom IDE: erna kommer att veta hur den f\u00f6rv\u00e4ntade parametern och svaret ser ut. Som ett resultat s\u00e5 skapas en b\u00e4ttre tydlighet n\u00e4r det inte \u00e4r m\u00f6jligt att anv\u00e4nda PHP\u2019s ursprungliga typer. D\u00e4rf\u00f6r s\u00e5 kommer detta att hj\u00e4lpa kodredigerarna att prestera b\u00e4ttre med funktioner f\u00f6r automatisk komplettering.<\/p>\n<h4>6. Alla valideringsregler kan aktiveras som standard<\/h4>\n<p>Om du vill g\u00f6ra en valideringsregel som kan aktiveras i Laravel 9 s\u00e5 m\u00e5ste du l\u00e4gga till en <code>--invokable<\/code>-flagga efter Artisan-kommandot. Detta \u00e4r inte l\u00e4ngre n\u00f6dv\u00e4ndigt eftersom alla regler i Laravel 10 \u00e4r invokable som standard. Du kan allts\u00e5 k\u00f6ra f\u00f6ljande kommando f\u00f6r att skapa en ny invokable regel i Laravel 10:<\/p>\n<pre><code class=\"language-php\">php artisan make:rule CustomRule<\/code><\/pre>\n<h4>7. Inbyggt st\u00f6d f\u00f6r \u00e4ndring av kolumner<\/h4>\n<p>I ett f\u00f6rs\u00f6k att eliminera behovet av paketet DBAL (<code>doctrine\/dbal<\/code>) n\u00e4r man anv\u00e4nder <code>change()<\/code> f\u00f6r att \u00e4ndra kolumner s\u00e5 inf\u00f6rdes en ny funktion i Laravel 10. Den g\u00f6r det m\u00f6jligt f\u00f6r utvecklare att anv\u00e4nda metoden <code>change()<\/code> och \u00e4ndra kolumner med <a href=\"https:\/\/kinsta.com\/se\/blog\/postgresql-vs-sql-server\/\">MySQL, PostgreSQL<\/a> och <a href=\"https:\/\/kinsta.com\/se\/blog\/postgresql-vs-sql-server\/\">SQL Server<\/a> utan att beh\u00f6va anv\u00e4nda extra paket. Detta \u00e4r en betydande och <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45487#issuecomment-1371500000\" target=\"_blank\" rel=\"noopener noreferrer\">riskfylld \u00e4ndring<\/a>, men vi anser att det \u00e4r v\u00e4rt det eftersom det eliminerar beroendet av ett extra paket.<\/p>\n<p>F\u00f6r att f\u00e5 en b\u00e4ttre f\u00f6rst\u00e5else f\u00f6r den nya funktionen, kan du titta p\u00e5 exemplet nedan:<\/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>Vi antar att vi har en kolumn f\u00f6r <code>user_balance<\/code> och att vi vill \u00e4ndra dess typ. Fr\u00e5n och med Laravel 10 s\u00e5 kan vi helt enkelt g\u00f6ra detta:<\/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>Ovanst\u00e5ende kod kommer att \u00e4ndra kolumnens typ, men kommer \u00e4ven att ta bort attributen <code>UNSIGNED<\/code>, <code>DEFAULT<\/code> och <code>COMMENT<\/code>. Det \u00e4r d\u00e4rf\u00f6r viktigt att komma ih\u00e5g att l\u00e4gga till alla attribut n\u00e4r du \u00e4ndrar typen av en kolumn:<\/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>Om du har flera <a href=\"https:\/\/kinsta.com\/blog\/laravel-database\/\">databasanslutningar<\/a> och redan har installerat DBAL s\u00e5 rekommenderas det att du anropar <code>Schema::useNativeSchemaOperationsIfPossible()<\/code>-metoden inom boot-metoden i <code>AppProvidersAppServiceProvider<\/code>. Som ett resultat s\u00e5 kan du anv\u00e4nda inhemska schemaoperationer och anv\u00e4nda inhemska operationer innan du f\u00f6rlitar dig p\u00e5 paketet (SQLite har exempelvis \u00e4nnu inte st\u00f6d f\u00f6r detta):<\/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>En annan anm\u00e4rkningsv\u00e4rd funktion i Laravel 10 \u00e4r m\u00f6jligheten att anv\u00e4nda metoden <code>Schema::getColumnType<\/code> utan att beh\u00f6va f\u00f6rlita sig p\u00e5 paketet <code>doctrine\/dbal<\/code>. Vi anv\u00e4nder f\u00f6r n\u00e4rvarande <code>Schema::getColumnType<\/code> med DBAL f\u00f6r att f\u00e5 fram kolumntypen. DBAL mappar varje inhemsk kolumntyp till dess DBAL-typekvivalent, och den har inte st\u00f6d f\u00f6r m\u00e5nga av de kolumntyper som anv\u00e4nds av Laravel i olika databaser.<\/p>\n<p>I Laravel 10 kommer den nya metoden <code>Schema::getColumnType<\/code> att returnera den faktiska kolonntypen snarare \u00e4n dess DBAL-ekvivalent. Den g\u00f6r det \u00e4ven m\u00f6jligt att skriva integreringstester f\u00f6r den nya inbyggda kolumn\u00e4ndringsfunktionen. Du kan anv\u00e4nda den h\u00e4r funktionen f\u00f6r att antingen f\u00e5 fram datatypnamnet eller hela typdefinitionen f\u00f6r den angivna kolumnen:<\/p>\n<pre><code class=\"language-php\">Schema::getColumnType('products', 'price'); \/\/ decimal<\/code><\/pre>\n<h4>9. Snabbare Hashing-algoritm<\/h4>\n<p>xxHash \u00e4r en Hash-algoritm som \u00e4r otroligt snabb. Den har en stor slumpm\u00e4ssighet och spridning i utdata samt unikhet f\u00f6r att minska kollisioner. PHP 8.1 ger st\u00f6d f\u00f6r xxh128, och Laravel 10 k\u00f6rs p\u00e5 PHP 8.1. Som ett resultat s\u00e5 \u00e4r det idealiskt att ha en s\u00e5dan p\u00e5litlig hash-algoritm i Laravel 10.<\/p>\n<p>Det \u00e4r v\u00e4rt att n\u00e4mna att <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45371#issuecomment-1359597016\" target=\"_blank\" rel=\"noopener noreferrer\">Taylor<\/a> under sin granskning av den h\u00e4r \u00e4ndringen lyfte fram att vissa tredjepartspaket kan f\u00f6rlita sig p\u00e5 att filnamnen \u00e4r i exakt samma format som SHA-1-hash. Detta \u00e4r den algoritm som Laravel anv\u00e4nde f\u00f6r hashning. Om du planerar en uppgradering till Laravel 10 s\u00e5 \u00e4r det d\u00e4rf\u00f6r klokt att dubbelkolla detta i alla paket fr\u00e5n tredje part som du anv\u00e4nder i din app.<\/p>\n<h4>10. <code>whereExists()<\/code> Metodst\u00f6d f\u00f6r Eloquent Builder<\/h4>\n<p>F\u00f6r n\u00e4rvarande s\u00e5 kr\u00e4ver anv\u00e4ndningen av <code>whereExists()<\/code> att man konfigurerar den inb\u00e4ddade fr\u00e5gan med hj\u00e4lp av en closure. Lyckligtvis s\u00e5 m\u00f6jligg\u00f6r Laravel 10 att man inkluderar en Eloquent Builder som en n\u00e4stlad fr\u00e5ga. Det g\u00f6r det m\u00f6jligt att anv\u00e4nda anpassade byggmetoder, modellomf\u00e5ng och s\u00e5 vidare.<\/p>\n<p>Vi g\u00f6r exempelvis normalt detta om vi vill anv\u00e4nda <code>whereExists()<\/code>:<\/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>Med Laravel 10 kan vi g\u00f6ra s\u00e5 h\u00e4r ist\u00e4llet:<\/p>\n<pre><code class=\"language-php\">Order::whereExists(\n  Product::whereColumn('products.order_id', 'orders.id')\n);<\/code><\/pre>\n<h4>11. Optimering av ivrig laddning<\/h4>\n<p>En av de intressanta nya funktionerna i Laravel 10 \u00e4r <a href=\"https:\/\/kinsta.com\/se\/blog\/laravel-prestanda\/#11-make-use-of-eager-loading\">optimering av ivrig laddning<\/a> n\u00e4r det inte finns n\u00e5gra nycklar som ska laddas. Den h\u00e4r \u00e4ndringen \u00e4r mer av en fix \u00e4n en funktion eftersom den tar itu med ett aktuellt problem d\u00e4r ivrig laddnings-relationer leder till att ett stort antal om\u00f6jliga beg\u00e4randen exekveras.<\/p>\n<p>F\u00f6r n\u00e4rvarande s\u00e5 kommer Laravel fortfarande att utf\u00f6ra en fr\u00e5ga som liknar den h\u00e4r n\u00e4r man laddar relationer som inte har n\u00e5gra nycklar att ladda, n\u00e4r man laddar ivrigt:<\/p>\n<pre><code class=\"language-php\">select * from `table_name` where 0 = 1<\/code><\/pre>\n<p>Den nya uppdateringen av Laravel 10 kontrollerar dock om det finns n\u00e5gra nycklar tillg\u00e4ngliga fr\u00e5n b\u00f6rjan. Om det inte finns n\u00e5gra s\u00e5dana, skapar den en tom samling, vilket eliminerar behovet av on\u00f6diga databasbeg\u00e4randen.<\/p>\n<h4>12. <code>$path<\/code> Valfritt f\u00f6r filsystemsmetoder<\/h4>\n<p>I Laravel 10 s\u00e5 \u00e4r parametern <code>$path<\/code> valfri f\u00f6r nedanst\u00e5ende metoder:<\/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>I st\u00e4llet f\u00f6r att g\u00f6ra detta f\u00f6r att lagra en uppladdad fil p\u00e5 <a href=\"https:\/\/kinsta.com\/se\/blog\/amazon-s3-sakerhetskopior\/\">Amazon S3<\/a>:<\/p>\n<pre><code class=\"language-php\">Storage::disk('s3')-&gt;putFile(\u2018post\/images', $uploadedFile);<\/code><\/pre>\n<p>&#8230;kan vi g\u00f6ra s\u00e5 h\u00e4r:<\/p>\n<pre><code class=\"language-php\">Storage::disk(Disk::PostImages)-&gt;putFile($uploadedFile)<\/code><\/pre>\n<h4>13. Databasuttryck och grammatikspecifik formatering<\/h4>\n<p>Bara fyra dagar f\u00f6re lanseringen av Laravel 10 s\u00e5 best\u00e4mde sig Laravel\u2019s k\u00e4rnteam f\u00f6r att sl\u00e5 ihop en lysande funktion som tar itu med en stor utmaning n\u00e4r man arbetar med flera databaser.<\/p>\n<p>Om vi arbetade med PostgreSQL och MySQL i tidigare versioner, och ville returnera det f\u00f6rsta v\u00e4rdet i en lista som ett alias, var vi tvungna att skriva en r\u00e5 databaskod och g\u00f6ra f\u00f6ljande:<\/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>I koden ovan anv\u00e4nder s\u00e5 vi <a href=\"https:\/\/www.w3schools.com\/sql\/func_sqlserver_coalesce.asp\" target=\"_blank\" rel=\"noopener noreferrer\">funktionen<code>COALESCE()<\/code><\/a> f\u00f6r att returnera det f\u00f6rsta v\u00e4rdet som inte \u00e4r noll som ett alias med namnet <strong>first visitor<\/strong>. S\u00e5 varje g\u00e5ng som vi beh\u00f6ver utf\u00f6ra en s\u00e5dan h\u00e4r operation m\u00e5ste vi skriva en r\u00e5 databaskod igen.<\/p>\n<p>Den nya funktionen g\u00f6r det m\u00f6jligt f\u00f6r oss att skapa \u00e5teranv\u00e4ndbara uttrycksklasser. De implementerar de r\u00e5a uttryck och uttalanden som vi beh\u00f6ver f\u00f6r v\u00e5ra fr\u00e5gor endast en g\u00e5ng. P\u00e5 s\u00e5 s\u00e4tt slipper vi skriva r\u00e5 databaskod n\u00e4r vi vill anv\u00e4nda fler databasfunktioner.<\/p>\n<p>Om vi g\u00e5r tillbaka till exemplet ovan, l\u00e5t oss f\u00f6lja det nya tillv\u00e4gag\u00e5ngss\u00e4ttet i Laravel 10 f\u00f6r att uppn\u00e5 samma resultat men utan att anv\u00e4nda syntaxen f\u00f6r r\u00e5 databaskod.<\/p>\n<p>F\u00f6rst s\u00e5 m\u00e5ste vi skapa tv\u00e5 klasser &#8211; en f\u00f6r aliasing och en f\u00f6r att anv\u00e4nda <code>COALESCE()<\/code>-funktionen:<\/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>vi kan sedan g\u00f6ra detta f\u00f6r att uppn\u00e5 det \u00f6nskade resultatet f\u00f6r b\u00e5de MySQL och PostgreSQL:<\/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 kan tycka att det \u00e4r f\u00f6r mycket arbete att skriva. Det \u00e4r dock definitivt v\u00e4rt det eftersom du endast beh\u00f6ver skriva det en g\u00e5ng. Du slipper \u00e4ven \u00e4ndra syntaxen n\u00e4r du har att g\u00f6ra med flera databaser.<\/p>\n<p>Enligt Tobias Petry, skaparen av <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/44784\" target=\"_blank\" rel=\"noopener noreferrer\">pull request<\/a>, s\u00e5 kommer den h\u00e4r \u00e4ndringen \u00e4ven att \u00f6ppna d\u00f6rren f\u00f6r m\u00e5nga m\u00f6jligheter f\u00f6r paket som kan tillhandah\u00e5lla de vanligaste klasserna f\u00f6r r\u00e5a uttryck. Han har till och med sagt att han kommer att tillhandah\u00e5lla den f\u00f6r Laravel\u2019s community i ett <a href=\"https:\/\/github.com\/tpetry\/laravel-query-expressions\" target=\"_blank\" rel=\"noopener noreferrer\">dedikerat paket<\/a> efter Laravel 10\u2019s lansering.<\/p>\n<h4>14. Uppdatering av SQL Server f\u00f6r att anv\u00e4nda <code>FETCH<\/code> och <code>OFFSET<\/code> f\u00f6r fr\u00e5gor som inte inneh\u00e5ller en<\/h4>\n<h4><code>orderBy<\/code><\/h4>\n<p>N\u00e4r vi anv\u00e4nder <code>orderBy<\/code> i en fr\u00e5ga som den h\u00e4r:<\/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>D\u00e5 producerar Laravel sedan ett SQL-meddelande som anv\u00e4nder <a href=\"https:\/\/www.geeksforgeeks.org\/sql-offset-fetch-clause\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>FETCH<\/code> och <code>OFFSET<\/code><\/a>:<\/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>Om vi i tidigare versioner av Laravel inte l\u00e4ngre tar med <code>orderBy<\/code> i fr\u00e5gan s\u00e5 \u00e5terg\u00e5r den dock till den gamla metoden f\u00f6r att f\u00f6rskjuta resultaten:<\/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>Men nu i Laravel 10 s\u00e5 kommer den h\u00e4r <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/44937\" target=\"_blank\" rel=\"noopener noreferrer\">nya uppdateringen<\/a> att g\u00f6ra det m\u00f6jligt f\u00f6r din Laravel 10-applikation att anv\u00e4nda <code>FETCH<\/code> och <code>OFFSET<\/code> \u00e4ven om <code>orderBy<\/code> inte finns med:<\/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>Den h\u00e4r uppdateringen <a href=\"https:\/\/gist.github.com\/dunhamjared\/cb40bbf294ed6f8e48bd60010a31b4f3\" target=\"_blank\" rel=\"noopener noreferrer\">f\u00f6rb\u00e4ttrar hastigheten med 33 %<\/a> och kr\u00e4ver f\u00e4rre exekveringssteg.<\/p>\n<h4>15. St\u00f6d f\u00f6r PHPUnit 10<\/h4>\n<p>Laravel 10 har st\u00f6d f\u00f6r PHPUnit 10. Det \u00e4r ett ramverk f\u00f6r enhetstestning f\u00f6r PHP och version 10 <a href=\"https:\/\/phpunit.de\/announcements\/phpunit-10.html\" target=\"_blank\" rel=\"noopener noreferrer\">sl\u00e4pptes den 3 februari \u00e5r 2023<\/a>. Laravel 10 kommer fortfarande att ha st\u00f6d f\u00f6r PHPUnit 9 och 8.<\/p>\n<h4>16. S\u00e4kerhetsf\u00f6rb\u00e4ttringar f\u00f6r klassen <code>Timebox<\/code><\/h4>\n<p>Laravel 10 inneh\u00e5ller s\u00e4kerhetsf\u00f6rb\u00e4ttringar f\u00f6r klassen <code>Timebox<\/code>. De syftar till att skydda applikationen mot <a href=\"https:\/\/tom.vg\/papers\/timeless-timing-attack_usenix2020.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">tidl\u00f6sa tidsattacker<\/a>. Klassen <code>Timebox<\/code> implementeras inuti metoden <code>hasValidCredentials<\/code>.<\/p>\n<p>Klassen <code>Timebox<\/code> har nu st\u00f6d f\u00f6r att hantera undantag som kastas under en Timebox callback-exekvering.<\/p>\n<h4>17. <code>dispatch()<\/code> Metodbeteendet \u00e4r detsamma i hela Laravel 10<\/h4>\n<p>Metoden <code>dispatch()<\/code> inuti <code>DispatchesJobs<\/code>-egenskapen kontrollerar nu unika jobb p\u00e5 samma s\u00e4tt som den globala hj\u00e4lpfunktionen <code>dispatch()<\/code>. Som ett resultat s\u00e5 antar\u00a0<code>dispatch()<\/code>-metoderna samma funktioner i hela Laravel 10.<\/p>\n<h4>18. Laravel-flaggor<\/h4>\n<p>Om du n\u00e5gonsin har arbetat med en webbapplikation som st\u00e4ndigt uppdateras med nya funktioner s\u00e5 f\u00f6rst\u00e5r du hur viktiga funktionsflaggor \u00e4r. Att bevara funktionsflaggor skulle dock kr\u00e4va en betydande m\u00e4ngd arbete f\u00f6r att g\u00f6ra det r\u00e4tt. Du beh\u00f6ver dock inte oroa dig, Laravel kan hj\u00e4lpa dig med det nya f\u00f6rstapartspaketet Laravel Pennant.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/10.x\/pennant\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Pennant<\/a> erbjuder en l\u00e4ttanv\u00e4nd l\u00f6sning f\u00f6r att uppr\u00e4tth\u00e5lla funktionsflaggor. Det levereras till och med med en drivrutin f\u00f6r en array i minnet och en databas.<\/p>\n<p>Du kan enkelt definiera en ny funktion:<\/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>Du kan sedan kontrollera om anv\u00e4ndaren har tillg\u00e5ng till denna funktion eller inte:<\/p>\n<pre><code class=\"language-php\">use LaravelPennantFeature;\nif (Feature::active('new-color-button')) {\n  \/\/ ...\n}<\/code><\/pre>\n<p>Det ser till och med snyggare ut i Laravel Blade:<\/p>\n<pre><code class=\"language-php\">@feature('new-color-button')\n\/\/ Kinsta Rules!!\n@endfeature<\/code><\/pre>\n<h4>19. Laravel Process Interaction<\/h4>\n<p>De nya processinteraktionerna i Laravel 10 g\u00f6r det enkelt att testa och k\u00f6ra CLI-processer. De erbjuder ett enkelt API som underl\u00e4ttar testningen. L\u00e5t oss h\u00e4mta exemplet fr\u00e5n den <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45314\" target=\"_blank\" rel=\"noopener noreferrer\">ursprungliga PR<\/a> f\u00f6r funktionen av 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>Du har f\u00f6rmodligen lagt m\u00e4rke till hur enkel och ren koden ovan \u00e4r. N\u00e4r vi g\u00e5r vidare till att bygga processer s\u00e5 blir det bara b\u00e4ttre:<\/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>F\u00f6r att anv\u00e4nda den nya funktionen i testning s\u00e5 kan du skapa en ny och falsk process som denna:<\/p>\n<pre><code class=\"language-php\">Process::fake([\n  'ls *' =&gt; Process::result('Hello From Kinsta'),\n]);<\/code><\/pre>\n<p>Du kan sedan k\u00f6ra den falska processen och anv\u00e4nda de nyligen <a href=\"https:\/\/laravel.com\/docs\/10.x\/processes#available-assertions\" target=\"_blank\" rel=\"noopener noreferrer\">tillg\u00e4ngliga p\u00e5st\u00e5endena<\/a>:<\/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 Test Scaffolding<\/h4>\n<p>Pest test scaffolding \u00e4r nu aktiverat som standard n\u00e4r du skapar nya Laravel-projekt. F\u00f6r att aktivera den h\u00e4r funktionen s\u00e5 anv\u00e4nder du flaggan <code>--pest<\/code> n\u00e4r du bygger en ny app med Laravel-installationsprogrammet:<\/p>\n<pre><code class=\"language-php\">laravel new example-kinsta-app --pest<\/code><\/pre>\n<h4>21. Hj\u00e4lpfunktion f\u00f6r str\u00e4ngl\u00f6senord<\/h4>\n<p>Laravel 10 kan skapa ett slumpm\u00e4ssigt och s\u00e4kert l\u00f6senord med en given l\u00e4ngd:<\/p>\n<pre><code class=\"language-php\">$password = Str::password(12);<\/code><\/pre>\n<h3>F\u00f6r\u00e5ldrade metoder och paket i Laravel 10<\/h3>\n<p>D\u00e4refter s\u00e5 ska vi titta p\u00e5 de paket och metoder som utesl\u00f6ts i samband med lanseringen av Laravel 10.<\/p>\n<h4>Laravel 10 tar farv\u00e4l av PHP 8.0<\/h4>\n<p>Laravelramverket slopar st\u00f6det f\u00f6r PHP 8.0 i Laravel 10. Om du planerar att uppgradera din app till Laravel 10 s\u00e5 m\u00e5ste du d\u00e4rf\u00f6r f\u00f6rst uppdatera PHP-versionen till <a href=\"https:\/\/kinsta.com\/blog\/php-8-1\/\">PHP 8.1<\/a> eller <a href=\"https:\/\/kinsta.com\/se\/blog\/php-8-2\/\">PHP 8.2<\/a>.<\/p>\n<h4>Borttagning av f\u00f6r\u00e5ldrade metoder<\/h4>\n<p><a href=\"https:\/\/laravel.com\/docs\/10.x\/upgrade\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel-dokumentationen<\/a> uppdateras med alla \u00e4ndringar och viktiga avskrivningar. Om du ska migrera ett p\u00e5g\u00e5ende projekt till Laravel 10 s\u00e5 ska all kod som anv\u00e4nder en f\u00f6r\u00e5ldrad metod skrivas om i en ny metod f\u00f6r att uppn\u00e5 samma resultat.<\/p>\n<p>H\u00e4r \u00e4r en lista \u00f6ver n\u00e5gra av avskrivningarna:<\/p>\n<ul>\n<li>Metoden <code>Route::home<\/code> (f\u00f6r\u00e5ldrad i Laravel 9)<\/li>\n<li>Funktioner och metoder runt <code>dispatchNow<\/code>, f\u00f6r\u00e5ldrade f\u00f6r att uppmuntra utvecklare att anv\u00e4nda <a href=\"https:\/\/laravel.com\/docs\/10.x\/queues#synchronous-dispatching\" target=\"_blank\" rel=\"noopener noreferrer\"><code>dispatchSync<\/code><\/a>, den enda st\u00f6dda metoden f\u00f6r omedelbar avs\u00e4ndning<\/li>\n<li>Metoden <code>getBaseQuery<\/code>, som har en motsvarighet till <code>toBase<\/code><\/li>\n<li>Klassen <code>MaintenanceModeException<\/code><\/li>\n<li>Egenskapen <code>MocksApplicationServices<\/code><\/li>\n<li><code>Mail::failures<\/code>-metoden<\/li>\n<li>Egenskapen <code>$dates<\/code> (anv\u00e4nd <a href=\"https:\/\/laravel.com\/docs\/9.x\/eloquent-mutators#attribute-casting\" target=\"_blank\" rel=\"noopener noreferrer\"><code>$casts<\/code><\/a> ist\u00e4llet)<\/li>\n<li>Metoden <code>assertTimesSent()<\/code><\/li>\n<li>St\u00f6d f\u00f6r Predis 1 och DBAL 2<\/li>\n<li>Alla relaterade avskrivningar i <code>doctrine\/dbal<\/code> sedan Laravel slutade att st\u00f6dja version 2<\/li>\n<\/ul>\n<h2>S\u00e5 h\u00e4r installerar du Laravel 10<\/h2>\n<p>Laravel\u2019s k\u00e4rnteam s\u00e5g till att alla utvecklare kunde f\u00e5 en enkel tillg\u00e5ng till ramverket i olika milj\u00f6er. Det finns d\u00e4rf\u00f6r olika s\u00e4tt att komma ig\u00e5ng med Laravel 10 p\u00e5 din maskin, och du \u00e4r helt fri att v\u00e4lja det som fungerar b\u00e4st f\u00f6r dig.<\/p>\n<h3>Installera Laravel 10 p\u00e5 MacOS<\/h3>\n<p>Du kan enkelt komma ig\u00e5ng med Laravel 10 p\u00e5 MacOS genom att anv\u00e4nda <a href=\"https:\/\/kinsta.com\/se\/blog\/vad-ar-docker\/\">Docker<\/a> och <a href=\"https:\/\/laravel.com\/docs\/10.x\/sail\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Sail<\/a>. K\u00f6r bara f\u00f6ljande terminalkommando fr\u00e5n den katalog d\u00e4r du vill att applikationen ska installeras, och t\u00e4nk p\u00e5 att endast alfanumeriska tecken, bindestreck och understrykningar \u00e4r till\u00e5tna i appnamnet:<\/p>\n<pre><code class=\"language-bash\">curl -s \"https:\/\/laravel.build\/example-kinsta-app\" | bash<\/code><\/pre>\n<p>N\u00e4r installationsprocessen \u00e4r klar s\u00e5 g\u00e5r du till projektkatalogen och anv\u00e4nder Sail f\u00f6r att k\u00f6ra ditt nya projekt genom att trycka p\u00e5 f\u00f6ljande kommando i terminalen:<\/p>\n<pre><code class=\"language-bash\">.\/vendor\/bin\/sail up<\/code><\/pre>\n<p>Sail kommer att anv\u00e4nda sin inbyggda l\u00f6sning f\u00f6r att k\u00f6ra ditt Laravel-projekt med Docker. N\u00e4r det \u00e4r klart s\u00e5 kommer din applikation att vara klar p\u00e5 <code>http:\/\/localhost<\/code>.<\/p>\n<h3>Installera Laravel 10 p\u00e5 Windows 10 och 11<\/h3>\n<p><a href=\"https:\/\/docs.docker.com\/desktop\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker Desktop<\/a> kan anv\u00e4ndas f\u00f6r att snabbt installera Laravel 10 p\u00e5 Windows. Oavsett om du anv\u00e4nder Windows 10 eller 11 s\u00e5 m\u00e5ste du dock f\u00f6rst aktivera ett av f\u00f6ljande tv\u00e5 alternativ p\u00e5 din dator:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/install\" target=\"_blank\" rel=\"noopener noreferrer\">Windows Undersystem f\u00f6r Linux 2 (WSL2)<\/a><\/strong> \u00e4r en funktion i operativsystemet Windows som g\u00f6r att du kan k\u00f6ra ett Linux-filsystem och Linux-kommandoradsverktyg direkt i Windows.<\/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> g\u00f6r det m\u00f6jligt att skapa och anv\u00e4nda en mjukvaruversion av en dator, en s\u00e5 kallad virtuell dator.<\/li>\n<\/ul>\n<p>S\u00e5 snart som du har uppfyllt alla <a href=\"https:\/\/docs.docker.com\/desktop\/install\/windows-install\/#install-docker-desktop-on-windows\" target=\"_blank\" rel=\"noopener noreferrer\">Docker-krav<\/a>\u00a0s\u00e5 kan du k\u00f6ra f\u00f6ljande kommando i din terminal:<\/p>\n<pre><code class=\"language-bash\">curl -s https:\/\/laravel.build\/example-kinsta-app | bash<\/code><\/pre>\n<p>Anv\u00e4nd sedan Sail f\u00f6r att k\u00f6ra din applikation p\u00e5 <code><a href=\"http:\/\/localhost\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/localhost<\/a><\/code> genom att trycka p\u00e5 f\u00f6ljande kommando fr\u00e5n rotkatalogen f\u00f6r ditt nyinstallerade Laravel 10-projekt:<\/p>\n<pre><code class=\"language-bash\">.\/vendor\/bin\/sail up<\/code><\/pre>\n<p>M\u00e5nga utvecklare f\u00f6redrar Linux OS framf\u00f6r andra operativsystem eftersom det g\u00f6r det m\u00f6jligt f\u00f6r dem att arbeta effektivare och snabbare. Med WSL s\u00e5 kan du njuta av <a href=\"https:\/\/ubuntu.com\/tutorials\/install-ubuntu-on-wsl2-on-windows-10#1-overview\" target=\"_blank\" rel=\"noopener noreferrer\">Ubuntu<\/a>\u2019s s\u00e4kerhet, prestanda och spelkompatibilitet. Ubuntu \u00e4r en Linuxdistribuering eller version av Linux som \u00e4r v\u00e4lk\u00e4nd f\u00f6r sin anv\u00e4ndarv\u00e4nlighet och anv\u00e4ndarv\u00e4nlighet.<\/p>\n<p>Det uppmuntras att du anv\u00e4nder <a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Visual Studio Code<\/a> och installerar Microsoft\u2019s officiella <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode-remote.remote-wsl\" target=\"_blank\" rel=\"noopener noreferrer\">WSL-till\u00e4gg<\/a>. D\u00e5 kan du \u00f6ppna alla mappar i Windows Undersystem f\u00f6r Linux och dra nytta av hela vscode-funktionen. Dessutom s\u00e5 \u00e4r till\u00e4gget <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode-remote.vscode-remote-extensionpack\" target=\"_blank\" rel=\"noopener noreferrer\">Fj\u00e4rrutveckling<\/a>\u00a0ett annat alternativ som refereras till i Laravel-dokumentationen.<\/p>\n<h3>Installera Laravel 10 med Composer<\/h3>\n<p>Oavsett om du anv\u00e4nder macOS eller Windows s\u00e5 kan Composer f\u00e5 ig\u00e5ng Laravel 10 p\u00e5 nolltid.<\/p>\n<p>Du m\u00e5ste f\u00f6rst se till att du har PHP \u2264 8.1, node, npm och Composer installerade p\u00e5 din dator.<\/p>\n<ul>\n<li><strong>F\u00f6r macOS:<\/strong> Composer kan installeras med hj\u00e4lp av <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener noreferrer\">Homebrew<\/a>.<\/li>\n<li><strong>F\u00f6r Windows:<\/strong> Den senaste stabila versionen av Composer kan laddas ner fr\u00e5n den <a href=\"https:\/\/getcomposer.org\/doc\/00-intro.md#installation-windows\" target=\"_blank\" rel=\"noopener noreferrer\">officiella Composer-webbplatsen<\/a>.<\/li>\n<\/ul>\n<p>N\u00e4r du har gjort detta s\u00e5 kan du installera Laravel\u2019s installerare globalt och anv\u00e4nda den f\u00f6r att installera din nya Laravel 10-applikation:<\/p>\n<pre><code class=\"language-bash\">composer global require laravel\/installer\nlaravel new example-kinsta-app<\/code><\/pre>\n<p>Du kan \u00e4ven skapa en ny Laravel 10-app direkt med hj\u00e4lp av Composer:<\/p>\n<pre><code class=\"language-bash\">composer create-project laravel\/laravel example-kinsta-app<\/code><\/pre>\n<h2>S\u00e5 h\u00e4r installerar du Laravel 11<\/h2>\n<p>Det \u00e4r fortfarande ett \u00e5r kvar till lanseringen av Laravel 11. Laravel 11 \u00e4r dock f\u00f6r n\u00e4rvarande tillg\u00e4ngligt f\u00f6r dig som vill testa dess funktioner. Den \u00e4r inte bara tillg\u00e4ngligt, utan inkluderar \u00e4ven <a href=\"https:\/\/github.com\/laravel\/framework\/pulls?q=is%3Apr+is%3Amerged+%5B11.x%5D+in%3Atitle\" target=\"_blank\" rel=\"noopener noreferrer\">n\u00e5gra sammanf\u00f6rda PR: s<\/a> p\u00e5 GitHub, exempelvis att man sl\u00e4pper st\u00f6det f\u00f6r PHP 8.1.<\/p>\n<p>Flaggan <code>--dev<\/code> i Laravel\u2019s installerare installerar mastergrenen fr\u00e5n <code>laravel\/laravel<\/code>-arkivet. Nu n\u00e4r Laravel 10 \u00e4r ute s\u00e5 kommer Laravel 11 att vara tillg\u00e4ngligt p\u00e5 mastergrenen. Om du anv\u00e4nder Laravel\u2019s installerare s\u00e5 beh\u00f6ver du bara k\u00f6ra det h\u00e4r kommandot i din terminal:<\/p>\n<pre><code class=\"language-php\">laravel new example-kinsta-app --dev<\/code><\/pre>\n<p>Eller om du f\u00f6redrar att anv\u00e4nda <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a>:<\/p>\n<pre><code class=\"language-php\">composer create-project --prefer-dist laravel\/laravel example-kinsta-app dev-master<\/code><\/pre>\n<p>F\u00f6r att b\u00e4ttre f\u00f6rst\u00e5 Composer-kommandot s\u00e5 f\u00e5r du h\u00e4r en snabb f\u00f6rklaring:<\/p>\n<ul>\n<li><strong><code>laravel\/laravel<\/code>:<\/strong> Paketet f\u00f6r Laravel-installationen<\/li>\n<li><strong><code>example-kinsta-app<\/code>:<\/strong> Den nya katalogen f\u00f6r ditt nya projekt (kan \u00e4ndras)<\/li>\n<li><strong><code>dev-master<\/code>:<\/strong> N\u00e4sta version av Laravel (i det h\u00e4r fallet Laravel 11)<\/li>\n<\/ul>\n<p>N\u00e4r du har installerat Laravel 11 s\u00e5 kan du bekr\u00e4fta versionen genom att navigera till den nya katalogen <strong>example-kinsta-app<\/strong> och k\u00f6ra det h\u00e4r Artisan-kommandot:<\/p>\n<pre><code class=\"language-php\">$ php artisan --version\nLaravel Framework 11.x-dev<\/code><\/pre>\n<h2>S\u00e5 h\u00e4r uppgraderar du ett projekt till Laravel 10<\/h2>\n<p>\u00c4r du frestad att uppgradera till Laravel 10? Laravel\u2019s k\u00e4rnteam arbetar h\u00e5rt med dokumentationen f\u00f6r att tillhandah\u00e5lla en s\u00f6ml\u00f6s och enkel uppgraderingsguide samtidigt som alla m\u00f6jliga brytande \u00e4ndringar t\u00e4cks. Du kan g\u00e4rna kolla in den <a href=\"https:\/\/laravel.com\/docs\/master\/upgrade#upgrade-10.0\" target=\"_blank\" rel=\"noopener noreferrer\">officiella uppgraderingsguiden f\u00f6r Laravel 10<\/a>.<\/p>\n<p>Du b\u00f6r \u00e4ven h\u00e5lla ett \u00f6ga p\u00e5 <a href=\"https:\/\/laravelshift.com\/shifts\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Shift<\/a> nu n\u00e4r Laravel 10 har sl\u00e4ppts. Laravel Shift erbjuder ett enkelt och automatiserat tillv\u00e4gag\u00e5ngss\u00e4tt f\u00f6r att uppgradera din Laravel-version.<\/p>\n<h2>S\u00e5 h\u00e4r distribuerar du Laravel 10-projekt<\/h2>\n<p>Att distribuera Laravel 10 skiljer sig inte fr\u00e5n att <a href=\"https:\/\/docs.sevalla.com\/templates\/overview#laravel\">distribuera Laravel 9-projekt<\/a>.<\/p>\n<p>H\u00e4r \u00e4r serverkraven:<\/p>\n<ul>\n<li>PHP \u2264 8.1<\/li>\n<li>Ctype PHP-till\u00e4gg<\/li>\n<li>cURL PHP-till\u00e4gg<\/li>\n<li>DOM PHP-till\u00e4gg<\/li>\n<li>PHP-till\u00e4gg Fileinfo<\/li>\n<li>PHP-till\u00e4gg Mbstring<\/li>\n<li>OpenSSL PHP-till\u00e4gg<\/li>\n<li>PCRE PHP-till\u00e4gg<\/li>\n<li>PDO PHP-till\u00e4gg<\/li>\n<li>Tokenizer PHP-till\u00e4gg<\/li>\n<li>XML PHP-till\u00e4gg<\/li>\n<li>Filter PHP-till\u00e4gg<\/li>\n<li>Hash PHP-till\u00e4gg<\/li>\n<li>Session PHP-till\u00e4gg<\/li>\n<\/ul>\n<p>Du kan distribuera och <a href=\"https:\/\/sevalla.com\/application-hosting\/\">hosta ditt Laravel 10-projekt<\/a> p\u00e5 Kinsta p\u00e5 n\u00e5gra minuter eftersom Laravel \u00e4r ett av de m\u00e5nga <a href=\"https:\/\/docs.sevalla.com\/applications\/reference\/faqs\">ramverk som st\u00f6ds<\/a> f\u00f6r hostade appar som finns p\u00e5 en l\u00e5ng lista.<\/p>\n<h3>Distribuera Laravel 10 p\u00e5 Kinsta: Steg f\u00f6r steg-guide<\/h3>\n<p>Det finns flera f\u00f6rdelar med att <a href=\"https:\/\/sevalla.com\/application-hosting\/\">hosta och distribuera dina Laravel applikationer p\u00e5 Kinsta<\/a>, bland annat att du inte beh\u00f6ver bry dig om konfigurationen av distribueringen.<\/p>\n<p>Kinsta tillhandah\u00e5ller ett anv\u00e4ndarv\u00e4nligt men \u00e4nd\u00e5 kraftfullt verktyg f\u00f6r att distribuera applikationer, ansluta till databaser och \u00f6vervaka liveprestanda. Det h\u00e4r verktyget kallas <a href=\"https:\/\/kinsta.com\/se\/mykinsta\/\">MyKinsta<\/a>, och i det h\u00e4r avsnittet g\u00e5r vi igenom stegen f\u00f6r att distribuera en Laravel 10-applikation med hj\u00e4lp av detta.<\/p>\n<h4>1. F\u00f6rbered din applikation<\/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=\"Hemsidan f\u00f6r en Laravel 10-applikation som distribueras p\u00e5 Kinsta.\" width=\"1024\" height=\"473\"><figcaption class=\"wp-caption-text\">Hemsidan f\u00f6r en Laravel 10-applikation som distribueras p\u00e5 Kinsta.<\/figcaption><\/figure>\n<p>Om vi antar att du har en Laravel 10-applikation lokalt s\u00e5 m\u00e5ste vi se till att den har ett <a href=\"https:\/\/kinsta.com\/blog\/what-is-github\/\">GitHub-arkiv tillg\u00e4ngligt<\/a>. Vi kommer senare att anv\u00e4nda detta arkiv f\u00f6r att distribuera applikationen.<\/p>\n<p>Du kan inkludera en <strong>.htaccess<\/strong>-fil i rotkatalogen f\u00f6r din applikation som inneh\u00e5ller f\u00f6ljande:<\/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>Detta omdirigerar alla Laravel\u00b4s beg\u00e4randen till <strong>public\/index.php<\/strong>. Vid behov s\u00e5 kan du dock uppdatera kommandot n\u00e4r du l\u00e4gger till applikationen\u00a0(steget <strong>Konfigurera<\/strong>\u00a0<strong>dina processer<\/strong>) eller efter distribueringen p\u00e5 sidan <strong>Processer<\/strong> f\u00f6r applikationen. Du kan anv\u00e4nda:<\/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. Logga in p\u00e5 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=\"Inloggningssidan f\u00f6r MyKinsta.\" width=\"999\" height=\"674\"><figcaption class=\"wp-caption-text\">Inloggningssidan f\u00f6r MyKinsta.<\/figcaption><\/figure>\n<p>G\u00e5 till <a href=\"https:\/\/my.kinsta.com\/login?lang=sv\" target=\"_blank\" rel=\"noopener noreferrer\">inloggningssidan f\u00f6r MyKinsta<\/a> och ange din e-postadress och ditt l\u00f6senord. Om du \u00e4nnu inte har ett konto s\u00e5 kan du <a href=\"https:\/\/kinsta.com\/se\/registrering\/?product_type=app-db\">registrera ett nytt konto<\/a> och f\u00e5 20 dollar i rabatt p\u00e5 din f\u00f6rsta m\u00e5nad i <a href=\"https:\/\/kinsta.com\/se\/priser\/?plan=visits-business1#application-hosting\">en prenumeration p\u00e5 en priss\u00e4ttningsplan<\/a>.<\/p>\n<h4>3. Auktorisera Kinsta p\u00e5 GitHub<\/h4>\n<p>N\u00e4r du har loggat in s\u00e5 kommer du att m\u00e4rka att instrumentpanelen har alternativ f\u00f6r att <a href=\"https:\/\/kinsta.com\/se\/blog\/moln-plattform-for-utvecklare\/#wp\">skapa en WordPress-webbplats<\/a>, <a href=\"https:\/\/kinsta.com\/se\/blog\/moln-plattform-for-utvecklare\/#app\">skapa en applikation<\/a> eller <a href=\"https:\/\/kinsta.com\/se\/blog\/moln-plattform-for-utvecklare\/#db\">skapa en databas<\/a>. Vi kommer att trycka p\u00e5 knappen <strong>Anslut\u00a0GitHub<\/strong> f\u00f6r att <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">integrera med GitHub<\/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=\"Instrumentpanelen f\u00f6r MyKinsta.\" width=\"1024\" height=\"430\"><figcaption class=\"wp-caption-text\">Instrumentpanelen f\u00f6r MyKinsta.<\/figcaption><\/figure>\n<p>D\u00e4refter s\u00e5 klickar du p\u00e5 knappen <strong>Forts\u00e4tt med GitHub<\/strong>. Om du inte redan \u00e4r inloggad p\u00e5 GitHub s\u00e5 visas alternativet att logga in. D\u00e4refter s\u00e5 kan du auktorisera Kinsta GitHub-applikationen att f\u00e5 tillg\u00e5ng till ditt GitHub-konto genom att v\u00e4lja <strong>Auktorisera Kinsta<\/strong>.<\/p>\n<p>Slutligen s\u00e5 kommer GitHub att omdirigera din webbl\u00e4sare till MyKinsta f\u00f6r att du ska kunna forts\u00e4tta att konfigurera applikationen.<\/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=\"Anslutning av MyKinsta till GitHub.\" width=\"1024\" height=\"271\"><figcaption class=\"wp-caption-text\">Anslutning av MyKinsta till GitHub.<\/figcaption><\/figure>\n<p>N\u00e4r du \u00e4r ansluten till GitHub s\u00e5 visas popup-f\u00f6nstret <strong>L\u00e4gg till applikation<\/strong>\/modalfunktionen, som har en rullgardinsmeny d\u00e4r du kan v\u00e4lja ett GitHub-arkiv. Klicka p\u00e5 f\u00e4ltet GitHub-arkiv och v\u00e4lj <strong>Redigera GitHub-beh\u00f6righet<\/strong>\u00a0i rullgardinsmenyn.<\/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=\"L\u00e4gga till en applikation till MyKinsta.\" width=\"1024\" height=\"430\"><figcaption class=\"wp-caption-text\">L\u00e4gga till en applikation till MyKinsta.<\/figcaption><\/figure>\n<p>Detta kommer att \u00f6ppna en ny flik i din webbl\u00e4sare till GitHub-webbplatsen, d\u00e4r du kan v\u00e4lja vilka data som Kinsta kommer att f\u00e5 tillg\u00e5ng till. Ist\u00e4llet f\u00f6r att aktivera \u00e5tkomst till alla arkiv s\u00e5 kan du \u00f6verv\u00e4ga att endast v\u00e4lja det eller de arkiv som du vill att Kinsta ska anv\u00e4nda.<\/p>\n<p>Klicka p\u00e5 <strong>Endast valda arkiv<\/strong> och v\u00e4lj det arkiv som du vill distribuera.<\/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=\"Ge Kinsta tillg\u00e5ng till GitHub.\" width=\"674\" height=\"1024\"><figcaption class=\"wp-caption-text\">Ge Kinsta tillg\u00e5ng till GitHub.<\/figcaption><\/figure>\n<p>Klicka sedan p\u00e5 <strong>Installera<\/strong>, s\u00e5 \u00e4r du redo!<\/p>\n<p>N\u00e4r du \u00e5terv\u00e4nder till MyKinsta och klickar p\u00e5 f\u00e4ltet <strong>GitHub-arkiv<\/strong>\u00a0s\u00e5 b\u00f6r det auktoriserade arkivet vara synligt. Du kan dessutom kryssa i kryssrutan <strong>Automatisk distribuering vid \u00f6verl\u00e4mnande<\/strong>. Som ett resultat s\u00e5 kan MyKinsta distribuera din applikation automatiskt s\u00e5 snart som du g\u00f6r \u00e4ndringar i GitHub-arkivet.<\/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=\"V\u00e4lj en arkivgren f\u00f6r MyKinsta.\" width=\"1024\" height=\"287\"><figcaption class=\"wp-caption-text\">V\u00e4lj en arkivgren f\u00f6r MyKinsta.<\/figcaption><\/figure>\n<h4>4. L\u00e4gg till grundl\u00e4ggande uppgifter om applikationen<\/h4>\n<p>Du kan nu ge applikationen ett namn som endast kommer att anv\u00e4ndas i instrumentpanelen och v\u00e4lja mellan 25 datacenterplatser. Som ett resultat s\u00e5 kan du placera applikationen p\u00e5 den geografiska plats som ligger n\u00e4rmast dina anv\u00e4ndare. Om du beh\u00f6ver hj\u00e4lp med att avg\u00f6ra vilket <a href=\"https:\/\/kinsta.com\/docs\/service-information\/data-center-locations\/\">datacenter<\/a> som \u00e4r idealiskt f\u00f6r din applikation s\u00e5 kan du l\u00e4sa v\u00e5r guide om att <a href=\"https:\/\/kinsta.com\/docs\/service-information\/data-center-locations\/\">v\u00e4lja r\u00e4tt datacenterplats<\/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-29.png\" alt=\"L\u00e4gg till en applikations grundl\u00e4ggande detaljer.\" width=\"1024\" height=\"423\"><figcaption class=\"wp-caption-text\">L\u00e4gg till en applikations grundl\u00e4ggande detaljer.<\/figcaption><\/figure>\n<h4>5. L\u00e4gg till milj\u00f6variabler<\/h4>\n<p>F\u00f6ljande avsnitt handlar om att l\u00e4gga till <a href=\"https:\/\/kinsta.com\/blog\/what-is-an-environment-variable\/\">milj\u00f6variabler<\/a> och den viktigaste variabeln \u00e4r <code>APP_KEY<\/code>.<\/p>\n<p>Om du inte redan har en nyckel i din .env-fil s\u00e5 kan du generera en med hj\u00e4lp av en <a href=\"https:\/\/generate-random.org\/laravel-key-generator\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel-nyckelgenerator p\u00e5 n\u00e4tet<\/a>. L\u00e4gg sedan in <code>APP_KEY<\/code> i f\u00e4ltet <strong>Nyckel 1<\/strong> och l\u00e4gg in den genererade appnyckeln i f\u00e4ltet <strong>V\u00e4rde 1<\/strong>.<\/p>\n<p>Slutligen s\u00e5 v\u00e4ljer du <strong>Tillg\u00e4nglig under k\u00f6rtid<\/strong> och <strong>Tillg\u00e4nglig under byggprocessen<\/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=\"L\u00e4gg till milj\u00f6variabler i MyKinsta.\" width=\"1024\" height=\"408\"><figcaption class=\"wp-caption-text\">L\u00e4gg till milj\u00f6variabler i MyKinsta.<\/figcaption><\/figure>\n<h4>6. Konfigurera byggmilj\u00f6n<\/h4>\n<p>Det magiska h\u00e4r \u00e4r att du inte beh\u00f6ver konfigurera n\u00e5gonting! Du kan forts\u00e4tta genom att klicka p\u00e5 knappen <strong>Forts\u00e4tt<\/strong>, och voil\u00e0: Du har slutf\u00f6rt konfigurationen av den byggda milj\u00f6n. Om du vill f\u00f6rb\u00e4ttra byggresurserna f\u00f6r att s\u00e4kerst\u00e4lla snabbare byggning s\u00e5 kan du dock v\u00e4lja det som du f\u00f6redrar i f\u00e4ltet <strong>Byggresurser<\/strong>.<\/p>\n<p>F\u00e4ltet <strong>Byggs\u00f6kv\u00e4g<\/strong> \u00e4r valfritt. Du kan l\u00e4mna detta tomt s\u00e5 kommer MyKinsta att anv\u00e4nda rotmappen.<\/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=\"Konfigurera applikationens byggmilj\u00f6.\" width=\"1024\" height=\"742\"><figcaption class=\"wp-caption-text\">Konfigurera applikationens byggmilj\u00f6.<\/figcaption><\/figure>\n<h4>7. Konfigurera processer och betalningsmetod<\/h4>\n<p>F\u00f6r avsnittet Resurser s\u00e5 fyller du i varje f\u00e4lt med f\u00f6ljande information:<\/p>\n<ul>\n<li><strong>Processnamn:<\/strong> Det namn som visas i listan \u00f6ver applikationens processer.<\/li>\n<li><strong>Processtyp:<\/strong> V\u00e4lj noga, eftersom detta inte kan \u00e4ndras n\u00e4r det v\u00e4l \u00e4r inst\u00e4llt. Du kan dock l\u00e4gga till och \u00e4ndra ytterligare processer, exempelvis ett bakgrundsjobb, p\u00e5 sidan Processer i applikationen efter distribueringen.<\/li>\n<li><strong>Startkommando:<\/strong>\u00a0Startkommandot f\u00f6r din process (inte obligatoriskt).<\/li>\n<li><strong>Podstorlek:<\/strong> Den podkapacitet som du r\u00e4knar med att beh\u00f6va f\u00f6r din process.<\/li>\n<li><strong>Antal instanser:<\/strong> Antal instanser f\u00f6r din process (max 50).<\/li>\n<\/ul>\n<p>Observera att du helt enkelt kan klicka p\u00e5 <strong>Forts\u00e4tt<\/strong> utan att fylla i f\u00e4ltet <strong>Startkommando<\/strong>, eftersom Kinsta uppt\u00e4cker det n\u00f6dv\u00e4ndiga kommandot automatiskt under den f\u00f6rsta distribueringen.<\/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=\"Inst\u00e4llning av applikationens processer.\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">Inst\u00e4llning av applikationens processer.<\/figcaption><\/figure>\n<p>I det sista steget s\u00e5 granskar du de m\u00e5natliga anv\u00e4ndningskostnaderna som har ber\u00e4knats f\u00f6r din app och bekr\u00e4ftar sedan din betalningsmetod. N\u00e4r du \u00e4r klar s\u00e5 klickar du p\u00e5 knappen <strong>Bekr\u00e4fta betalningsmetod<\/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=\"Bekr\u00e4fta betalningsuppgifter.\" width=\"902\" height=\"744\"><figcaption class=\"wp-caption-text\">Bekr\u00e4fta betalningsuppgifter.<\/figcaption><\/figure>\n<p>Sen \u00e4r du klar! Kinsta g\u00f6r allt arbete i bakgrunden f\u00f6r att betj\u00e4na din applikation.<\/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=\"Laddar applikationens distribueringsprocess.\" width=\"1024\" height=\"335\"><figcaption class=\"wp-caption-text\">Laddar applikationens distribueringsprocess.<\/figcaption><\/figure>\n<p>D\u00e4refter s\u00e5 f\u00e5r du tillg\u00e5ng till alla detaljer om distribueringsprocessen samt den tillf\u00e4lliga webbadressen f\u00f6r liveappen, som du senare kan ers\u00e4tta med din egen dom\u00e4n.<\/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=\"Framg\u00e5ngsrik distribuering av Laravel 10-applikationen p\u00e5 MyKinsta.\" width=\"1024\" height=\"746\"><figcaption class=\"wp-caption-text\">Framg\u00e5ngsrik distribuering av Laravel 10-applikationen p\u00e5 MyKinsta.<\/figcaption><\/figure>\n<p>Din Laravel 10-applikation \u00e4r nu live p\u00e5 Kinsta, men vad h\u00e4nder om du beh\u00f6ver g\u00f6ra en \u00e4ndring i produktionen? Eller om du vill \u00e4ndra en ankartaggs attribut <code>href<\/code>?<\/p>\n<p>Eftersom vi har aktiverat alternativet <strong>Automatisk distribuering vid utf\u00f6rande<\/strong>\u00a0s\u00e5 kommer MyKinsta att uppt\u00e4cka alla \u00e4ndringar som vi g\u00f6r i den distribuerade grenen och automatiskt uppdatera live-appen i enlighet med detta.<\/p>\n<h4>8. Anslut Laravel 10 till MySQL-databasen<\/h4>\n<p>Nu n\u00e4r vi har distribuerat v\u00e5r Laravel 10-applikation s\u00e5 kan vi enkelt konstruera en databas och koppla den till v\u00e5r applikation. Allt som du beh\u00f6ver g\u00f6ra \u00e4r att klicka p\u00e5 <strong>Applikationer<\/strong> i navigeringsmenyn till v\u00e4nster, sedan p\u00e5 <strong>L\u00e4gg till tj\u00e4nst<\/strong> och\u00a0<strong>Databas<\/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-36.png\" alt=\"L\u00e4gg till en ny databas i MyKinsta.\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">L\u00e4gg till en ny databas i MyKinsta.<\/figcaption><\/figure>\n<p>N\u00e4r du har fyllt i alla f\u00e4lt s\u00e5 klickar du p\u00e5 <strong>Skapa databas<\/strong>. Detta kommer att skapa en ny databas som \u00e4r redo f\u00f6r interna och externa anslutningar. I v\u00e5rt scenario s\u00e5 beh\u00f6ver vi en intern anslutning till Laravel 10-projektet som vi distribuerade.<\/p>\n<p>F\u00f6r att \u00e5stadkomma detta s\u00e5 \u00e4r allt som du beh\u00f6ver g\u00f6ra att klicka p\u00e5 <strong>L\u00e4gg till applikation<\/strong>\u00a0i avsnittet <strong>Interna anslutningar<\/strong>\u00a0och v\u00e4lja din applikation. Du kan kryssa i kryssrutan <strong>L\u00e4gg till milj\u00f6variabler<\/strong> till applikationen s\u00e5 fyller MyKinsta i alla <code>.env<\/code>-variabler som din applikation beh\u00f6ver.<\/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=\"Anslutning av en databas till en Laravel 10-applikation.\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">Anslutning av en databas till en Laravel 10-applikation.<\/figcaption><\/figure>\n<p>Sen \u00e4r din Laravel 10-applikation distribuerad och ansluten till en databas.<\/p>\n<h2>Hur man bidrar till Laravel 10<\/h2>\n<p>\u00c4ven om Laravel underh\u00e5lls av ett k\u00e4rnteam s\u00e5 utvecklas det aktivt av \u00f6ver <a href=\"https:\/\/github.com\/laravel\/framework\/graphs\/contributors\" target=\"_blank\" rel=\"noopener noreferrer\">3 000 frivilliga bidragsgivare<\/a>.<\/p>\n<p>Vill du vara en av dessa bidragsgivare och hj\u00e4lpa till att forma Laravels framtid? Om du svarar ja s\u00e5 kan du hj\u00e4lpa utvecklare \u00f6ver hela v\u00e4rlden genom att l\u00e4gga till en ny funktion, \u00e5tg\u00e4rda ett fel eller till och med skriva om en f\u00f6rvirrande del av dokumentationen.<\/p>\n<p>F\u00f6r att bidra till Laravel 10, s\u00e5 beh\u00f6ver du g\u00f6ra detta:<\/p>\n<ol>\n<li>G\u00e5 till <a href=\"https:\/\/github.com\/laravel\/framework\/pulls?page=2&#038;q=is%3Apr+is%3Amerged+10.x\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel\u2019s GitHub-arkiv<\/a> och kolla in pull requests med [10.x] i titeln. P\u00e5 s\u00e5 s\u00e4tt f\u00e5r du en tydlig bild av alla pull requests f\u00f6r Laravel 10. Om en av PR: erna tar upp det bidrag som du t\u00e4nkte g\u00f6ra, se om du kan f\u00f6rb\u00e4ttra det.<\/li>\n<li>Om ditt planerade bidrag \u00e4nnu inte har behandlats av n\u00e5gon annan s\u00e5 kan du skapa ett PR sj\u00e4lv.<\/li>\n<li>Allt \u00e4r inte v\u00e4rt att l\u00e4gga till i ramverkets kodbas. Str\u00e4va d\u00e4rf\u00f6r efter att endast genomf\u00f6ra f\u00f6rb\u00e4ttringar som kommer att vara l\u00e4tta att underh\u00e5lla i framtiden och som kommer att hj\u00e4lpa den stora majoriteten av Laravel\u2019s community.<\/li>\n<li>Se till att f\u00f6lja <a href=\"https:\/\/laravel.com\/docs\/master\/contributions\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel\u2019s riktlinjer f\u00f6r bidrag<\/a> f\u00f6r att f\u00e5 en b\u00e4ttre chans att f\u00e5 dina \u00e4ndringar sammanslagna med ramverket.<\/li>\n<\/ol>\n<p>En annan anledning till att \u00e4lska Laravel 10 \u00e4r att du kan vinna pengar f\u00f6r dina bidrag med bugg-jakt! Vi kommer att titta p\u00e5 dessa h\u00e4rn\u00e4st.<\/p>\n<h3>Laravel 10-t\u00e4vling om bugg-jakt<\/h3>\n<p><img decoding=\"async\" class=\"yoast-text-mark\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/Untitled-20.png\" alt=\"\"&lt;yoastmark\"><\/p>\n<p>Laravel 10 har tillk\u00e4nnagivit en utm\u00e4rkt t\u00e4vling d\u00e4r en slumpm\u00e4ssig bidragsgivare har chansen att vinna 1 000 dollar. Detta var den f\u00f6rsta t\u00e4vlingen i sitt slag i Laravel\u2019s historia. Den var utformad f\u00f6r att uppmuntra Laravel\u2019s community att hitta och \u00e5tg\u00e4rda dolda buggar i Laravel 10.<\/p>\n<p>Reglerna var enkla:<\/p>\n<ul>\n<li>Endast PRs som skickas in till <code>laravel\/framework<\/code>-arkivets 10.x branch \u00e4r kvalificerade.<\/li>\n<li>Endast &#8221;\u00e4kta&#8221; buggfixar beaktades. Nya funktioner, refaktorisering och r\u00e4ttelser av felskrivningar beaktades inte.<\/li>\n<li>Varje felr\u00e4ttning m\u00e5ste st\u00f6djas av ett test.<\/li>\n<li>Godk\u00e4nda felr\u00e4ttningar m\u00e4rktes p\u00e5 GitHub och en slumpm\u00e4ssig vinnare tillk\u00e4nnagavs efter t\u00e4vlingens slut.<\/li>\n<\/ul>\n<p>T\u00e4vlingen avslutades n\u00e4r den f\u00f6rsta stabila versionen av Laravel 10 sl\u00e4pptes den 14 februari \u00e5r 2023.<\/p>\n<h2>Sammanfattning<\/h2>\n<p>Hittills s\u00e5 verkar Laravel 10 vara extremt lovande, och vi ser fram emot att g\u00e5 igenom alla de g\u00e5vor som det f\u00f6r med sig till PHP-v\u00e4rlden.<\/p>\n\n<p>Om du letar efter fler <a href=\"https:\/\/kinsta.com\/se\/blog\/laravel-prestanda\/\">s\u00e4tt att f\u00f6rb\u00e4ttra prestandan hos din Laravel-app<\/a>\u00a0s\u00e5 kan du \u00f6verv\u00e4ga att byta till en premium hosting-leverant\u00f6r. <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Kinsta\u2019s l\u00f6sningar f\u00f6r applikationshosting<\/a> \u00e4r bland de snabbaste, s\u00e4kraste och l\u00e4ttaste att anv\u00e4nda i branschen. De \u00e4r s\u00e4rskilt utformade med utvecklare i \u00e5tanke, och erbjuder effektivisering av produktionen och expertsupport dygnet runt fr\u00e5n v\u00e5ra egna erfarna utvecklare.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nu har det g\u00e5tt \u00f6ver ett decennium sedan introduktionen av det mycket popul\u00e4ra ramverket Laravel. Det har s\u00e4kert h\u00e4nt att du har undrat: &#8221;Vad mer kan &#8230;<\/p>\n","protected":false},"author":266,"featured_media":50318,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[790],"class_list":["post-50317","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>Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna<\/title>\n<meta name=\"description\" content=\"I denna artikel, tar vi dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, fixar och nyligen avskrivna metoder och paket.\" \/>\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\/se\/blog\/laravel-10\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna\" \/>\n<meta property=\"og:description\" content=\"I denna artikel, tar vi dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, fixar och nyligen avskrivna metoder och paket.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstasweden\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-21T12:43:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-21T09:12:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10.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=\"I denna artikel, tar vi dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, fixar och nyligen avskrivna metoder och paket.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_se\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_se\" \/>\n<meta name=\"twitter:label1\" content=\"Skriven av\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mostafa Said\" \/>\n\t<meta name=\"twitter:label2\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data2\" content=\"29 minuter\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/\"},\"author\":{\"name\":\"Mostafa Said\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996\"},\"headline\":\"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna\",\"datePublished\":\"2023-02-21T12:43:07+00:00\",\"dateModified\":\"2023-09-21T09:12:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/\"},\"wordCount\":5928,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/se\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png\",\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/\",\"url\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/\",\"name\":\"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/se\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png\",\"datePublished\":\"2023-02-21T12:43:07+00:00\",\"dateModified\":\"2023-09-21T09:12:19+00:00\",\"description\":\"I denna artikel, tar vi dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, fixar och nyligen avskrivna metoder och paket.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png\",\"contentUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/se\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/se\/topics\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/se\/#website\",\"url\":\"https:\/\/kinsta.com\/se\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snabba, s\u00e4kra, premium hosting-l\u00f6sningar\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/se\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/se\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/se\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/se\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstasweden\/\",\"https:\/\/x.com\/kinsta_se\",\"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\/se\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996\",\"name\":\"Mostafa Said\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\/\/kinsta.com\/se\/#\/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\/se\/blog\/author\/mostafasaid\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna","description":"I denna artikel, tar vi dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, fixar och nyligen avskrivna metoder och paket.","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\/se\/blog\/laravel-10\/","og_locale":"sv_SE","og_type":"article","og_title":"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna","og_description":"I denna artikel, tar vi dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, fixar och nyligen avskrivna metoder och paket.","og_url":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstasweden\/","article_published_time":"2023-02-21T12:43:07+00:00","article_modified_time":"2023-09-21T09:12:19+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10.png","type":"image\/png"}],"author":"Mostafa Said","twitter_card":"summary_large_image","twitter_description":"I denna artikel, tar vi dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, fixar och nyligen avskrivna metoder och paket.","twitter_image":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png","twitter_creator":"@kinsta_se","twitter_site":"@kinsta_se","twitter_misc":{"Skriven av":"Mostafa Said","Ber\u00e4knad l\u00e4stid":"29 minuter"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/"},"author":{"name":"Mostafa Said","@id":"https:\/\/kinsta.com\/se\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996"},"headline":"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna","datePublished":"2023-02-21T12:43:07+00:00","dateModified":"2023-09-21T09:12:19+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/"},"wordCount":5928,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/se\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png","inLanguage":"sv-SE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/se\/blog\/laravel-10\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/","url":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/","name":"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna","isPartOf":{"@id":"https:\/\/kinsta.com\/se\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png","datePublished":"2023-02-21T12:43:07+00:00","dateModified":"2023-09-21T09:12:19+00:00","description":"I denna artikel, tar vi dig p\u00e5 en resa genom Laravel 10\u2019s nya funktioner, fixar och nyligen avskrivna metoder och paket.","breadcrumb":{"@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/se\/blog\/laravel-10\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#primaryimage","url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png","contentUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/02\/laravel-10-1.png","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/se\/blog\/laravel-10\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/se\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/se\/topics\/laravel\/"},{"@type":"ListItem","position":3,"name":"Vad \u00e4r nytt i Laravel 10: en djupdykning i de senaste uppdateringarna och funktionerna"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/se\/#website","url":"https:\/\/kinsta.com\/se\/","name":"Kinsta\u00ae","description":"Snabba, s\u00e4kra, premium hosting-l\u00f6sningar","publisher":{"@id":"https:\/\/kinsta.com\/se\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/se\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/se\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/se\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/se\/wp-content\/uploads\/sites\/9\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/se\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstasweden\/","https:\/\/x.com\/kinsta_se","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\/se\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996","name":"Mostafa Said","image":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kinsta.com\/se\/#\/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\/se\/blog\/author\/mostafasaid\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/50317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/users\/266"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/comments?post=50317"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/50317\/revisions"}],"predecessor-version":[{"id":50904,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/posts\/50317\/revisions\/50904"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/en"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/fr"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/de"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/dk"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/translations\/jp"},{"href":"https:\/\/kinsta.com\/se\/wp-json\/kinsta\/v1\/posts\/50317\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/media\/50318"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/media?parent=50317"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/tags?post=50317"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/se\/wp-json\/wp\/v2\/topic?post=50317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}