{"id":66348,"date":"2023-02-14T16:08:27","date_gmt":"2023-02-14T15:08:27","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=66348&#038;preview=true&#038;preview_id=66348"},"modified":"2023-11-03T03:57:36","modified_gmt":"2023-11-03T02:57:36","slug":"laravel-10","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/","title":{"rendered":"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s"},"content":{"rendered":"<p>Plus de dix ans apr\u00e8s l&rsquo;introduction du <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-laravel\/\">framework Laravel<\/a>, tr\u00e8s populaire, vous \u00eates-vous d\u00e9j\u00e0 demand\u00e9 : \u00ab Que peut encore offrir Laravel aux d\u00e9veloppeurs PHP ? \u00bb<\/p>\n<p>\u00c9tant donn\u00e9 \u00e0 quel point il a d\u00e9j\u00e0 simplifi\u00e9 le d\u00e9veloppement PHP pour les d\u00e9veloppeurs d\u00e9butants et professionnels, certains pourraient m\u00eame affirmer qu&rsquo;il a g\u00e2t\u00e9 les d\u00e9veloppeurs en leur faisant croire que PHP est le langage de programmation le plus facile qui soit.<\/p>\n\n<p>Alors, Laravel a-t-il encore d&rsquo;autres surprises en r\u00e9serve pour les <a href=\"https:\/\/kinsta.com\/fr\/blog\/developpeur-laravel\/\">d\u00e9veloppeurs Laravel<\/a>? Ou a-t-il \u00e9puis\u00e9 tous les moyens possibles pour soutenir les d\u00e9veloppeurs PHP ?<\/p>\n<p>En tout cas, nous savons que Laravel 10 a beaucoup \u00e0 offrir. C&rsquo;est ce que nous allons d\u00e9couvrir dans cet article en vous emmenant \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fraichement d\u00e9pr\u00e9ci\u00e9s de Laravel 10.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Calendrier de sortie de Laravel<\/h2>\n<p>L&rsquo;\u00e9quipe centrale de Laravel avait l&rsquo;habitude de publier deux versions majeures par an (une tous les six mois).<\/p>\n<p>Cependant, le cycle de publication a \u00e9t\u00e9 modifi\u00e9 lorsque Taylor Otwell, le cr\u00e9ateur de Laravel, a <a href=\"https:\/\/blog.laravel.com\/updates-to-laravels-versioning-policy\" target=\"_blank\" rel=\"noopener noreferrer\">annonc\u00e9<\/a> qu&rsquo;une seule version majeure serait d\u00e9sormais publi\u00e9e chaque ann\u00e9e. Cela a permis \u00e0 l&rsquo;\u00e9quipe centrale et \u00e0 la communaut\u00e9 de consacrer plus de temps et d&rsquo;efforts \u00e0 une version sp\u00e9cifique du framework et d&rsquo;introduire de nouvelles fonctionnalit\u00e9s puissantes sans effectuer de changements radicaux.<\/p>\n<p>La sortie de Laravel 10 \u00e9tait pr\u00e9vue pour le 7 f\u00e9vrier 2023, apr\u00e8s la sortie de <a href=\"https:\/\/kinsta.com\/fr\/blog\/laravel-9\/\">Laravel 9<\/a> le 8 f\u00e9vrier 2022. Cependant, l&rsquo;\u00e9quipe a eu besoin de plus de temps pour finaliser son \u0153uvre, et Laravel 10 a finalement \u00e9t\u00e9 publi\u00e9 le 14 f\u00e9vrier 2023.<\/p>\n<p>La publication de Laravel 11 est maintenant pr\u00e9vue pour le premier trimestre de f\u00e9vrier 2024.<\/p>\n<p>En outre, selon la <a href=\"https:\/\/laravel.com\/docs\/10.x\/releases#support-policy\" target=\"_blank\" rel=\"noopener noreferrer\">politique de support<\/a>, les corrections de bogues sont offertes pendant 18 mois et les mises \u00e0 jour de s\u00e9curit\u00e9 pendant deux ans pour toutes les versions de Laravel.<\/p>\n<p>Voici le calendrier pr\u00e9vu pour les corrections de bugs et les mises \u00e0 jour de s\u00e9curit\u00e9 :<\/p>\n<ul>\n<li>Laravel 9 continuera \u00e0 recevoir des corrections de bugs jusqu&rsquo;au 8 ao\u00fbt 2023 et des corrections de s\u00e9curit\u00e9 jusqu&rsquo;au 6 f\u00e9vrier 2024.<\/li>\n<li>Laravel 10 b\u00e9n\u00e9ficiera de corrections de bugs jusqu&rsquo;au 6 ao\u00fbt 2024 et de corrections de s\u00e9curit\u00e9 jusqu&rsquo;au 4 f\u00e9vrier 2025.<\/li>\n<li>Laravel 11 devrait b\u00e9n\u00e9ficier de corrections de bugs jusqu&rsquo;au 5 ao\u00fbt 2025 et de corrections de s\u00e9curit\u00e9 jusqu&rsquo;au 3 f\u00e9vrier 2026.<\/li>\n<\/ul>\n<h2>Devriez-vous passer \u00e0 Laravel 10 ?<\/h2>\n<p>Il est important de se rappeler que nous n&rsquo;avons pas toujours besoin de mettre \u00e0 niveau la version Laravel de notre application vers la derni\u00e8re version d\u00e8s qu&rsquo;une nouvelle version est publi\u00e9e.<\/p>\n<p>Laravel est un framework open source, ce qui implique que chaque fois que nous installons une nouvelle instance de Laravel sur notre machine, nous poss\u00e9dons la base de code du framework. Cela signifie que m\u00eame si la version du framework que notre application utilise n&rsquo;est plus prise en charge, l&rsquo;application fonctionnera toujours ; nous devrons simplement en assurer la maintenance nous-m\u00eames.<\/p>\n<p>Par cons\u00e9quent, il est largement sugg\u00e9r\u00e9 de donner la priorit\u00e9 \u00e0 la stabilit\u00e9 des applications plut\u00f4t qu&rsquo;aux mises \u00e0 niveau du framework.<\/p>\n<p>En bref, vous devriez envisager la mise \u00e0 niveau vers Laravel 10 lorsque :<\/p>\n<ul>\n<li>L&rsquo;application est stable avec sa version actuelle et fonctionne sans probl\u00e8me.<\/li>\n<li>La nouvelle version ajoute une fonctionnalit\u00e9 dont votre application a besoin ou corrige un probl\u00e8me que votre application rencontre.<\/li>\n<li>L&rsquo;application sera bien test\u00e9e avant que les changements de la mise \u00e0 niveau ne soient pouss\u00e9s en production.<\/li>\n<\/ul>\n<h2>Mises \u00e0 jour de Laravel 10<\/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=\"Laravel 10.\" width=\"1024\" height=\"576\"><figcaption class=\"wp-caption-text\">Laravel 10.<\/figcaption><\/figure>\n<p>Kinsta est un grand fan de Laravel. C&rsquo;est pourquoi nous avons rassembl\u00e9 les points forts de Laravel 10 dans un seul article que vous pourrez utiliser comme r\u00e9f\u00e9rence et guide pour utiliser toutes les nouvelles fonctionnalit\u00e9s. Nous vous recommandons donc d&rsquo;ajouter cette page \u00e0 vos favoris et de la revisiter de temps en temps.<\/p>\n<h3>Nouvelles fonctionnalit\u00e9s et mises \u00e0 jour dans Laravel 10<\/h3>\n<p>Il ne fait aucun doute que la partie la plus excitante de toute nouvelle version est l&rsquo;ajout de nouvelles fonctionnalit\u00e9s. Donc, sans plus attendre, commen\u00e7ons par jeter un coup d&rsquo;\u0153il aux nouvelles fonctionnalit\u00e9s et mises \u00e0 jour de Laravel 10.<\/p>\n<h4>1. PHP 8.1 : Au c\u0153ur de Laravel 10<\/h4>\n<p>PHP 8.1 est la version minimale requise de PHP dans Laravel 10. Certaines fonctionnalit\u00e9s de PHP 8.1, telles que les propri\u00e9t\u00e9s readonly et array_is_list, sont utilis\u00e9es dans Laravel 10.<\/p>\n<h4>2. Prise en charge de PHP 8.2<\/h4>\n<p>PHP 8.2 a \u00e9t\u00e9 publi\u00e9 le 8 d\u00e9cembre 2022, soit deux mois seulement avant la date de sortie de Laravel 10. Pourtant, cela ne devrait pas vous emp\u00eacher d&rsquo;utiliser les fonctionnalit\u00e9s de PHP 8.2, car sans rien faire de plus, Laravel 10 est pr\u00eat pour PHP 8.2.<\/p>\n<p>En fait, l&rsquo;ensemble de l&rsquo;\u00e9cosyst\u00e8me Laravel, y compris Forge, Vapor et Envoyer, prend en charge PHP 8.2, et vous pouvez m\u00eame utiliser <a href=\"https:\/\/blog.laravel.com\/laravel-loves-php-82\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.2 avec Laravel 9<\/a>. C&rsquo;est vraiment cool !<\/p>\n<h4>3. Mise \u00e0 jour des paquets officiels Laravel<\/h4>\n<p>Non seulement le framework est maintenu de mani\u00e8re professionnelle et mis \u00e0 jour r\u00e9guli\u00e8rement, mais tous les paquets officiels et l&rsquo;\u00e9cosyst\u00e8me le sont \u00e9galement.<\/p>\n<p>Voici une liste des paquets officiels Laravel les plus r\u00e9cents qui ont \u00e9t\u00e9 mis \u00e0 jour pour prendre en charge Laravel 10 :<\/p>\n<ol>\n<li>Breeze<\/li>\n<li>Stripe Cashier<\/li>\n<li>Dusk<\/li>\n<li>Horizon<\/li>\n<li>Installer<\/li>\n<li>Jetstream<\/li>\n<li>Passeport<\/li>\n<li>Pint<\/li>\n<li>Sail<\/li>\n<li>Scout<\/li>\n<li>Valet<\/li>\n<\/ol>\n<p>Un autre plaisir pour les fans de Rails, Vue, React et Svelte, <a href=\"https:\/\/kinsta.com\/fr\/blog\/inertia-laravel\/\">Inertiajs 1.0.1<\/a> prend \u00e9galement en charge Laravel 10.<\/p>\n<h4>4. Mise \u00e0 niveau de la version de Predis<\/h4>\n<p>Predis est un client <a href=\"https:\/\/kinsta.com\/fr\/blog\/base-de-donees-en-memoire\/\">Redis<\/a> robuste pour PHP qui peut vous aider \u00e0 tirer <a href=\"https:\/\/kinsta.com\/fr\/blog\/laravel-caching\/\">le meilleur parti de la mise en cache<\/a> pour offrir une exp\u00e9rience utilisateur fantastique. Laravel supportait auparavant les versions 1 et 2, mais \u00e0 partir de Laravel 10, le framework ne supporte plus Predis 1.<\/p>\n<p>Bien que la documentation de Laravel <a href=\"https:\/\/laravel.com\/docs\/10.x\/redis\" target=\"_blank\" rel=\"noopener noreferrer\">mentionne Predis<\/a> comme paquet pour interagir avec Redis, vous pouvez \u00e9galement utiliser l&rsquo;<a href=\"https:\/\/github.com\/phpredis\/phpredis\/\" target=\"_blank\" rel=\"noopener noreferrer\">extension PHP officielle<\/a>. Cette extension fournit une API pour communiquer avec les serveurs Redis.<\/p>\n<h4>5. D\u00e9clarations de type natives<\/h4>\n<p>Laravel avait l&rsquo;habitude d&rsquo;utiliser des DocBlocks dans son code squelette pour clarifier ce qu&rsquo;un morceau de code fait et quels types de param\u00e8tres ou de r\u00e9ponses attendre. Cependant, gr\u00e2ce aux d\u00e9clarations de type natives dans Laravel 10, cela va changer.<\/p>\n<p>La meilleure fa\u00e7on d&rsquo;expliquer ce changement est de prendre un exemple simple. Au lieu qu&rsquo;une fonction ressemble \u00e0 ceci :<\/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;elle ressemblera \u00e0 ceci :<\/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>Ce changement est purement au b\u00e9n\u00e9fice de l&rsquo;exp\u00e9rience du d\u00e9veloppeur, car les IDE connaitront la forme du param\u00e8tre et de la r\u00e9ponse attendus. Il fournira une meilleure clart\u00e9 des types lorsque cela n&rsquo;est pas possible avec les types natifs de PHP. Par cons\u00e9quent, il aidera les \u00e9diteurs de code \u00e0 mieux fonctionner avec les fonctions de compl\u00e9tion automatique.<\/p>\n<h4>6. Toutes les r\u00e8gles de validation sont invocables par d\u00e9faut<\/h4>\n<p>Si vous vouliez rendre une r\u00e8gle de validation invocable dans Laravel 9, vous deviez ajouter un drapeau <code>--invokable<\/code> apr\u00e8s la commande Artisan. Cela n&rsquo;est plus n\u00e9cessaire car toutes les r\u00e8gles de Laravel 10 sont invocables par d\u00e9faut. Vous pouvez donc ex\u00e9cuter la commande suivante pour cr\u00e9er une nouvelle r\u00e8gle invocable dans Laravel 10 :<\/p>\n<pre><code class=\"language-php\">php artisan make:rule CustomRule<\/code><\/pre>\n<h4>7. Prise en charge de la modification native des colonnes<\/h4>\n<p>Dans le but d&rsquo;\u00e9liminer le besoin du paquet DBAL (<code>doctrine\/dbal<\/code>) lors de l&rsquo;utilisation de <code>change()<\/code> pour modifier les colonnes, une nouvelle fonctionnalit\u00e9 a \u00e9t\u00e9 introduite dans Laravel 10 qui permet aux d\u00e9veloppeurs d&rsquo;utiliser la m\u00e9thode <code>change()<\/code> et de modifier les colonnes avec <a href=\"https:\/\/kinsta.com\/fr\/blog\/postgresql-vs-sql-server\/\">MySQL, PostgreSQL<\/a> et <a href=\"https:\/\/kinsta.com\/fr\/blog\/postgresql-vs-sql-server\/\">SQL Server<\/a> sans avoir besoin de paquets suppl\u00e9mentaires. Il s&rsquo;agit d&rsquo;un <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45487#issuecomment-1371500000\" target=\"_blank\" rel=\"noopener noreferrer\">changement de rupture<\/a> important et risqu\u00e9, mais nous pensons qu&rsquo;il en vaut la peine car il \u00e9limine la d\u00e9pendance \u00e0 un paquet suppl\u00e9mentaire.<\/p>\n<p>Pour mieux comprendre la nouvelle fonctionnalit\u00e9, consultez l&rsquo;exemple ci-dessous :<\/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>Maintenant, nous supposons que nous avons une colonne pour <code>user_balance<\/code> et que nous voulons changer son type. \u00c0 partir de Laravel 10, nous pouvons simplement faire ceci :<\/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>Le code ci-dessus modifiera avec succ\u00e8s le type de la colonne, mais il supprimera \u00e9galement les attributs <code>UNSIGNED<\/code>, <code>DEFAULT<\/code> et <code>COMMENT<\/code>. Par cons\u00e9quent, il est important de ne pas oublier d&rsquo;ajouter tous les attributs lorsque vous modifiez le type d&rsquo;une colonne :<\/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>Dans le cas o\u00f9 vous avez plusieurs <a href=\"https:\/\/kinsta.com\/fr\/blog\/base-de-donnees-laravel\/\">connexions de base de donn\u00e9es<\/a> et que vous avez d\u00e9j\u00e0 install\u00e9 DBAL, il est recommand\u00e9 d&rsquo;appeler la m\u00e9thode <code>Schema::useNativeSchemaOperationsIfPossible()<\/code> \u00e0 l&rsquo;int\u00e9rieur de la m\u00e9thode de d\u00e9marrage dans <code>AppProvidersAppServiceProvider<\/code> pour pouvoir utiliser les op\u00e9rations de sch\u00e9ma natives et pour utiliser les op\u00e9rations natives avant de s&rsquo;appuyer sur le package (SQLite, par exemple, ne supporte pas encore cela) :<\/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. R\u00e9cup\u00e9ration native du type de colonne<\/h4>\n<p>Une autre caract\u00e9ristique notable de Laravel 10 est la possibilit\u00e9 d&rsquo;utiliser la m\u00e9thode <code>Schema::getColumnType<\/code> sans devoir s&rsquo;appuyer sur le package <code>doctrine\/dbal<\/code>. Nous utilisons actuellement <code>Schema::getColumnType<\/code> avec DBAL pour obtenir le type de colonne. DBAL fait correspondre chaque type de colonne natif \u00e0 son \u00e9quivalent DBAL, et il ne prend pas en charge de nombreux types de colonnes utilis\u00e9s par Laravel dans diverses bases de donn\u00e9es.<\/p>\n<p>Dans Laravel 10, en revanche, la nouvelle m\u00e9thode <code>Schema::getColumnType<\/code> renvoie le type de colonne r\u00e9el plut\u00f4t que son \u00e9quivalent DBAL. Elle vous permet \u00e9galement d&rsquo;\u00e9crire des tests d&rsquo;int\u00e9gration pour la nouvelle fonctionnalit\u00e9 de modification native des colonnes. Vous pouvez utiliser cette fonctionnalit\u00e9 pour obtenir soit le nom du type de donn\u00e9es, soit la d\u00e9finition compl\u00e8te du type de la colonne sp\u00e9cifi\u00e9e :<\/p>\n<pre><code class=\"language-php\">Schema::getColumnType('products', 'price'); \/\/ decimal<\/code><\/pre>\n<h4>9. Algorithme de hachage plus rapide<\/h4>\n<p>xxHash est un algorithme de hachage incroyablement rapide. Il pr\u00e9sente un grand caract\u00e8re al\u00e9atoire et une grande dispersion en sortie, ainsi qu&rsquo;une unicit\u00e9 pour r\u00e9duire les collisions. \u00c9tant donn\u00e9 que PHP 8.1 prend en charge xxh128, et que Laravel 10 fonctionne sur PHP 8.1, avoir un algorithme de hachage aussi fiable dans Laravel 10 est id\u00e9al.<\/p>\n<p>Il est int\u00e9ressant de mentionner que <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45371#issuecomment-1359597016\" target=\"_blank\" rel=\"noopener noreferrer\">Taylor a soulign\u00e9<\/a>, lors de son examen de ce changement, que certains paquets tiers peuvent compter sur le fait que les noms de fichiers soient dans le format exact du hachage SHA-1, qui est l&rsquo;algorithme que Laravel utilisait pour le hachage. Par cons\u00e9quent, si vous pr\u00e9voyez une mise \u00e0 niveau vers Laravel 10, il serait judicieux de rev\u00e9rifier ce point dans tous les paquets tiers que vous utilisez dans votre application.<\/p>\n<h4>10. <code>whereExists()<\/code> Support de la m\u00e9thode pour Eloquent Builder<\/h4>\n<p>Actuellement, l&rsquo;utilisation de <code>whereExists()<\/code> n\u00e9cessite de configurer la requ\u00eate imbriqu\u00e9e \u00e0 l&rsquo;aide d&rsquo;une fermeture. Heureusement, avec Laravel 10, il est maintenant possible d&rsquo;inclure un Eloquent Builder comme requ\u00eate imbriqu\u00e9e. Cela permet d&rsquo;utiliser des m\u00e9thodes de constructeur personnalis\u00e9es, des scopes de mod\u00e8le, etc.<\/p>\n<p>Par exemple, nous proc\u00e9dons normalement ainsi si nous voulons utiliser <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>Avec Laravel 10, nous pouvons simplement faire ceci \u00e0 la place :<\/p>\n<pre><code class=\"language-php\">Order::whereExists(\n  Product::whereColumn('products.order_id', 'orders.id')\n);<\/code><\/pre>\n<h4>11. Optimisation Eager Loading<\/h4>\n<p>L&rsquo;une des nouvelles fonctionnalit\u00e9s int\u00e9ressantes de Laravel 10 est l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/blog\/methodes-optimisation-performances-laravel\/#11-make-use-of-eager-loading\">optimisation du chargement rapide<\/a> lorsqu&rsquo;il n&rsquo;y a pas de cl\u00e9s \u00e0 charger. Ce changement est plus un correctif qu&rsquo;une fonctionnalit\u00e9 car il s&rsquo;attaque \u00e0 un probl\u00e8me actuel dans lequel les relations de chargement rapide entrainent l&rsquo;ex\u00e9cution d&rsquo;un grand nombre de requ\u00eates impossibles.<\/p>\n<p>\u00c0 l&rsquo;heure actuelle, lorsque des relations sont charg\u00e9es par anticipation et qu&rsquo;il n&rsquo;y a pas de cl\u00e9s \u00e0 charger, Laravel ex\u00e9cute toujours une requ\u00eate similaire \u00e0 celle-ci :<\/p>\n<pre><code class=\"language-php\">select * from `table_name` where 0 = 1<\/code><\/pre>\n<p>Toutefois, la nouvelle mise \u00e0 jour de Laravel 10 v\u00e9rifie d&rsquo;abord s&rsquo;il y a des cl\u00e9s disponibles et, s&rsquo;il n&rsquo;y en a pas, fournit une collection vide, \u00e9liminant ainsi la n\u00e9cessit\u00e9 d&rsquo;interroger inutilement la base de donn\u00e9es.<\/p>\n<h4>12. <code>$path<\/code> Facultatif pour les m\u00e9thodes de syst\u00e8me de fichiers<\/h4>\n<p>Dans Laravel 10, le param\u00e8tre <code>$path<\/code> est facultatif pour les m\u00e9thodes ci-dessous :<\/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>Ainsi, au lieu de faire cela afin de stocker un fichier t\u00e9l\u00e9charg\u00e9 sur <a href=\"https:\/\/kinsta.com\/fr\/blog\/sauvegardes-externes-amazon-s3\/\">Amazon S3<\/a>:<\/p>\n<pre><code class=\"language-php\">Storage::disk('s3')-&gt;putFile(\u2018post\/images', $uploadedFile);<\/code><\/pre>\n<p>&#8230;nous pouvons faire ceci :<\/p>\n<pre><code class=\"language-php\">Storage::disk(Disk::PostImages)-&gt;putFile($uploadedFile)<\/code><\/pre>\n<h4>13. Expressions de base de donn\u00e9es et formatage sp\u00e9cifique \u00e0 la grammaire<\/h4>\n<p>Quatre jours seulement avant la sortie de Laravel 10, l&rsquo;\u00e9quipe centrale de Laravel a d\u00e9cid\u00e9 de fusionner une fonctionnalit\u00e9 brillante qui r\u00e9pond \u00e0 un grand d\u00e9fi lorsque l&rsquo;on travaille avec plusieurs bases de donn\u00e9es.<\/p>\n<p>Dans les versions pr\u00e9c\u00e9dentes, si nous travaillions avec PostgreSQL et MySQL et que nous voulions retourner la premi\u00e8re valeur d&rsquo;une liste en tant qu&rsquo;alias, nous devions \u00e9crire du code de base de donn\u00e9es brut et faire ce qui suit :<\/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>Dans le code ci-dessus, nous utilisons la <a href=\"https:\/\/www.w3schools.com\/sql\/func_sqlserver_coalesce.asp\" target=\"_blank\" rel=\"noopener noreferrer\">fonction<code>COALESCE()<\/code><\/a> pour retourner la premi\u00e8re valeur non nulle en tant qu&rsquo;alias nomm\u00e9 <strong>first visitor<\/strong>. Ainsi, chaque fois que nous aurions besoin d&rsquo;effectuer une op\u00e9ration comme celle-ci, nous devrions \u00e9crire \u00e0 nouveau du code de base de donn\u00e9es brut.<\/p>\n<p>La nouvelle fonctionnalit\u00e9 nous permet de cr\u00e9er des classes d&rsquo;expression r\u00e9utilisables qui mettent en \u0153uvre les expressions et instructions brutes dont nous avons besoin pour nos requ\u00eates une seule fois. Ainsi, il ne sera plus n\u00e9cessaire d&rsquo;\u00e9crire du code brut de base de donn\u00e9es lorsque nous voudrons utiliser davantage de fonctionnalit\u00e9s de base de donn\u00e9es.<\/p>\n<p>Pour en revenir \u00e0 l&rsquo;exemple ci-dessus, suivons la nouvelle approche de Laravel 10 pour obtenir le m\u00eame r\u00e9sultat, mais sans utiliser la syntaxe du code brut de la base de donn\u00e9es.<\/p>\n<p>Tout d&rsquo;abord, nous devrions cr\u00e9er deux classes &#8211; une pour l&rsquo;aliasing, et une pour l&rsquo;utilisation de la fonction <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>Ensuite, nous pouvons proc\u00e9der ainsi pour obtenir le r\u00e9sultat souhait\u00e9 \u00e0 la fois pour MySQL et 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>Vous pourriez penser que c&rsquo;est trop de travail \u00e0 \u00e9crire, mais cela en vaut vraiment la peine car vous n&rsquo;aurez \u00e0 l&rsquo;\u00e9crire qu&rsquo;une seule fois et cela vous \u00e9vitera de devoir changer de syntaxe lorsque vous aurez affaire \u00e0 plusieurs bases de donn\u00e9es.<\/p>\n<p>De plus, selon le cr\u00e9ateur de la <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/44784\" target=\"_blank\" rel=\"noopener noreferrer\">pull request<\/a>, Tobias Petry, ce changement ouvrira la porte \u00e0 de nombreuses possibilit\u00e9s de paquets pour fournir les classes d&rsquo;expression brute les plus courantes pour vous. Il a m\u00eame d\u00e9clar\u00e9 qu&rsquo;il les fournira \u00e0 la communaut\u00e9 dans un <a href=\"https:\/\/github.com\/tpetry\/laravel-query-expressions\" target=\"_blank\" rel=\"noopener noreferrer\">paquet d\u00e9di\u00e9<\/a> apr\u00e8s la sortie de Laravel 10.<\/p>\n<h4>14. Mise \u00e0 jour du serveur SQL pour utiliser <code>FETCH<\/code> et <code>OFFSET<\/code> pour les requ\u00eates qui n&rsquo;incluent pas de nom<\/h4>\n<p>de domaine<\/p>\n<h4><code>orderBy<\/code><\/h4>\n<p>Lorsque nous utilisons <code>orderBy<\/code> dans une requ\u00eate comme celle-ci :<\/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 produit alors une d\u00e9claration SQL qui utilise <a href=\"https:\/\/www.geeksforgeeks.org\/sql-offset-fetch-clause\/\" target=\"_blank\" rel=\"noopener noreferrer\"><code>FETCH<\/code> et <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>Cependant, dans les versions pr\u00e9c\u00e9dentes de Laravel, si nous supprimons <code>orderBy<\/code> de la requ\u00eate, elle revient \u00e0 l&rsquo;ancienne m\u00e9thode de d\u00e9calage des r\u00e9sultats :<\/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>Mais maintenant, cette <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/44937\" target=\"_blank\" rel=\"noopener noreferrer\">nouvelle mise \u00e0 jour<\/a> permettra \u00e0 votre application Laravel 10 d&rsquo;utiliser <code>FETCH<\/code> et <code>OFFSET<\/code> m\u00eame si <code>orderBy<\/code> n&rsquo;est pas pr\u00e9sent :<\/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>Cette mise \u00e0 jour <a href=\"https:\/\/gist.github.com\/dunhamjared\/cb40bbf294ed6f8e48bd60010a31b4f3\" target=\"_blank\" rel=\"noopener noreferrer\">am\u00e9liore la vitesse de 33 %<\/a> et n\u00e9cessite moins d&rsquo;\u00e9tapes d&rsquo;ex\u00e9cution.<\/p>\n<h4>15. Prise en charge de PHPUnit 10<\/h4>\n<p>Laravel 10 prend en charge PHPUnit 10. Il s&rsquo;agit d&rsquo;un framework de test unitaire pour PHP et la version 10 a \u00e9t\u00e9 <a href=\"https:\/\/phpunit.de\/announcements\/phpunit-10.html\" target=\"_blank\" rel=\"noopener noreferrer\">publi\u00e9e le 3 f\u00e9vrier 2023<\/a>. Laravel 10 prend toujours en charge PHPUnit 9 et 8.<\/p>\n<h4>16. Am\u00e9liorations de la s\u00e9curit\u00e9 pour la classe <code>Timebox<\/code><\/h4>\n<p>Laravel 10 comprend des am\u00e9liorations de s\u00e9curit\u00e9 pour la classe <code>Timebox<\/code>, qui visent \u00e0 prot\u00e9ger l&rsquo;application contre les <a href=\"https:\/\/tom.vg\/papers\/timeless-timing-attack_usenix2020.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">attaques intemporelles de synchronisation<\/a>. La classe <code>Timebox<\/code> est impl\u00e9ment\u00e9e \u00e0 l&rsquo;int\u00e9rieur de la m\u00e9thode <code>hasValidCredentials<\/code>.<\/p>\n<p>La classe <code>Timebox<\/code> a maintenant un support pour g\u00e9rer les exceptions lanc\u00e9es pendant l&rsquo;ex\u00e9cution d&rsquo;un callback de Timebox.<\/p>\n<h4>17. <code>dispatch()<\/code> Le comportement de la m\u00e9thode est le m\u00eame dans tout Laravel 10<\/h4>\n<p>La m\u00e9thode <code>dispatch()<\/code> \u00e0 l&rsquo;int\u00e9rieur du trait <code>DispatchesJobs<\/code> v\u00e9rifie d\u00e9sormais les emplois uniques de la m\u00eame mani\u00e8re que la fonction d&rsquo;aide globale <code>dispatch()<\/code>. Ainsi, les m\u00e9thodes <code>dispatch()<\/code> adoptent les m\u00eames fonctionnalit\u00e9s \u00e0 travers Laravel 10.<\/p>\n<h4>18. Fanion Laravel<\/h4>\n<p>Si vous avez d\u00e9j\u00e0 travaill\u00e9 sur une application web qui est constamment mise \u00e0 jour avec de nouvelles fonctionnalit\u00e9s, vous comprenez \u00e0 quel point les fanions de fonctionnalit\u00e9 sont vitaux. N\u00e9anmoins, pr\u00e9server les drapeaux de fonctionnalit\u00e9s n\u00e9cessiterait une quantit\u00e9 importante de travail pour le faire correctement, mais ne vous inqui\u00e9tez pas, Laravel vous couvre avec le nouveau paquetage de premi\u00e8re partie Laravel Pennant.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/10.x\/pennant\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Pennant<\/a> fournit une solution facile \u00e0 utiliser pour la conservation des feature flags. Il est m\u00eame livr\u00e9 avec un pilote de tableau en m\u00e9moire et une base de donn\u00e9es.<\/p>\n<p>Vous pouvez facilement d\u00e9finir une nouvelle fonctionnalit\u00e9 :<\/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>Vous pourrez ensuite v\u00e9rifier si l&rsquo;utilisateur a acc\u00e8s \u00e0 cette fonctionnalit\u00e9 ou non :<\/p>\n<pre><code class=\"language-php\">use LaravelPennantFeature;\nif (Feature::active('new-color-button')) {\n  \/\/ ...\n}<\/code><\/pre>\n<p>C&rsquo;est m\u00eame plus joli dans 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>Le nouveau Process Interactions de Laravel 10 fait des tests et de l&rsquo;ex\u00e9cution des processus CLI un jeu d&rsquo;enfant. Elle offre une API simple pour all\u00e9ger le fardeau des tests. Prenons l&rsquo;exemple du <a href=\"https:\/\/github.com\/laravel\/framework\/pull\/45314\" target=\"_blank\" rel=\"noopener noreferrer\">PR original<\/a> de cette fonctionnalit\u00e9 par 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>Vous avez probablement remarqu\u00e9 \u00e0 quel point le code ci-dessus est simple et propre. Si l&rsquo;on passe aux processus de construction, les choses ne font que s&rsquo;am\u00e9liorer :<\/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>Maintenant, pour utiliser cette nouvelle fonctionnalit\u00e9 en test, vous pouvez cr\u00e9er un nouveau et faux processus comme ceci :<\/p>\n<pre><code class=\"language-php\">Process::fake([\n  'ls *' =&gt; Process::result('Hello From Kinsta'),\n]);<\/code><\/pre>\n<p>Ensuite, vous pouvez ex\u00e9cuter le faux processus et utiliser les <a href=\"https:\/\/laravel.com\/docs\/10.x\/processes#available-assertions\" target=\"_blank\" rel=\"noopener noreferrer\">assertions nouvellement <\/a><a href=\"https:\/\/laravel.com\/docs\/10.x\/processes#available-assertions\" target=\"_blank\" rel=\"noopener noreferrer\">disponibles<\/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. \u00c9chafaudage Pest<\/h4>\n<p>L&rsquo;\u00e9chafaudage de test Pest est maintenant activ\u00e9 par d\u00e9faut lors de la cr\u00e9ation de nouveaux projets Laravel. Pour activer cette fonctionnalit\u00e9, utilisez le drapeau <code>--pest<\/code> lors de la cr\u00e9ation d&rsquo;une nouvelle application avec l&rsquo;installateur Laravel :<\/p>\n<pre><code class=\"language-php\">laravel new example-kinsta-app --pest<\/code><\/pre>\n<h4>21. Fonction d&rsquo;aide pour les mots de passe de type cha\u00eene<\/h4>\n<p>Laravel 10 peut cr\u00e9er un mot de passe al\u00e9atoire et s\u00e9curis\u00e9 avec une longueur donn\u00e9e :<\/p>\n<pre><code class=\"language-php\">$password = Str::password(12);<\/code><\/pre>\n<h3>M\u00e9thodes et packages d\u00e9pr\u00e9ci\u00e9s dans Laravel 10<\/h3>\n<p>Ensuite, nous allons examiner les paquets et les m\u00e9thodes qui ont \u00e9t\u00e9 supprim\u00e9s avec la sortie de Laravel 10.<\/p>\n<h4>Laravel 10 dit au revoir \u00e0 PHP 8.0<\/h4>\n<p>Le framework Laravel ne prend plus en charge PHP 8.0 dans Laravel 10. Par cons\u00e9quent, si vous pr\u00e9voyez de mettre votre application \u00e0 niveau vers Laravel 10, vous devez d&rsquo;abord mettre \u00e0 jour la version PHP vers <a href=\"https:\/\/kinsta.com\/fr\/blog\/php-8-1\/\">PHP 8.1<\/a> ou <a href=\"https:\/\/kinsta.com\/fr\/blog\/php-8-2\/\">PHP 8.2<\/a>.<\/p>\n<h4>Suppression des m\u00e9thodes obsol\u00e8tes<\/h4>\n<p>La <a href=\"https:\/\/laravel.com\/docs\/10.x\/upgrade\" target=\"_blank\" rel=\"noopener noreferrer\">documentation de Laravel<\/a> est mise \u00e0 jour avec tous les changements et les d\u00e9pr\u00e9ciations importantes. Si vous comptez migrer un projet actuel vers Laravel 10, tout code qui utilise une m\u00e9thode d\u00e9pr\u00e9ci\u00e9e doit \u00eatre r\u00e9\u00e9crit dans une nouvelle approche pour obtenir le m\u00eame r\u00e9sultat.<\/p>\n<p>Voici une liste de certaines des d\u00e9pr\u00e9ciations :<\/p>\n<ul>\n<li>La m\u00e9thode <code>Route::home<\/code> (d\u00e9pr\u00e9ci\u00e9e dans Laravel 9)<\/li>\n<li>Fonctions et m\u00e9thodes autour de <code>dispatchNow<\/code>, d\u00e9pr\u00e9ci\u00e9 pour encourager les d\u00e9veloppeurs \u00e0 utiliser <a href=\"https:\/\/laravel.com\/docs\/10.x\/queues#synchronous-dispatching\" target=\"_blank\" rel=\"noopener noreferrer\"><code>dispatchSync<\/code><\/a>la seule m\u00e9thode support\u00e9e pour la distribution imm\u00e9diate<\/li>\n<li>La m\u00e9thode <code>getBaseQuery<\/code>, qui a un \u00e9quivalent <code>toBase<\/code><\/li>\n<li>La classe <code>MaintenanceModeException<\/code><\/li>\n<li>Le trait <code>MocksApplicationServices<\/code><\/li>\n<li>La m\u00e9thode <code>Mail::failures<\/code> du mail fake<\/li>\n<li>La propri\u00e9t\u00e9 <code>$dates<\/code> (utilisez <a href=\"https:\/\/laravel.com\/docs\/9.x\/eloquent-mutators#attribute-casting\" target=\"_blank\" rel=\"noopener noreferrer\"><code>$casts<\/code><\/a> \u00e0 la place)<\/li>\n<li>La m\u00e9thode <code>assertTimesSent()<\/code><\/li>\n<li>Support de Predis 1 et DBAL 2<\/li>\n<li>Toutes les d\u00e9pr\u00e9ciations li\u00e9es \u00e0 <code>doctrine\/dbal<\/code> depuis que Laravel a abandonn\u00e9 la prise en charge de la version 2<\/li>\n<\/ul>\n<h2>Comment installer Laravel 10<\/h2>\n<p>L&rsquo;\u00e9quipe centrale de Laravel a veill\u00e9 \u00e0 ce que tous les d\u00e9veloppeurs puissent acc\u00e9der facilement au framework sur diff\u00e9rents environnements. Par cons\u00e9quent, il existe plusieurs fa\u00e7ons de d\u00e9marrer avec Laravel 10 sur votre machine, et vous \u00eates enti\u00e8rement libre de choisir celle qui vous convient le mieux.<\/p>\n<h3>Installer Laravel 10 sur MacOS<\/h3>\n<p>Vous pouvez facilement d\u00e9marrer avec Laravel 10 sur MacOS en utilisant <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-docker\/\">Docker<\/a> et <a href=\"https:\/\/laravel.com\/docs\/10.x\/sail\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Sail<\/a>. Vous pouvez ex\u00e9cuter la commande de terminal suivante depuis le r\u00e9pertoire o\u00f9 vous souhaitez installer l&rsquo;application, en gardant \u00e0 l&rsquo;esprit que seuls les caract\u00e8res alphanum\u00e9riques, les tirets et les underscores sont autoris\u00e9s pour le nom de l&rsquo;application :<\/p>\n<pre><code class=\"language-bash\">curl -s \"https:\/\/laravel.build\/example-kinsta-app\" | bash<\/code><\/pre>\n<p>Une fois le processus d&rsquo;installation termin\u00e9, rendez-vous dans le r\u00e9pertoire du projet et utilisez Sail pour ex\u00e9cuter votre nouveau projet en tapant la commande suivante dans le terminal :<\/p>\n<pre><code class=\"language-bash\">.\/vendor\/bin\/sail up<\/code><\/pre>\n<p>Sail utilisera sa solution int\u00e9gr\u00e9e pour ex\u00e9cuter votre projet Laravel en utilisant Docker, et une fois termin\u00e9, votre application sera pr\u00eate sur <code>http:\/\/localhost<\/code>.<\/p>\n<h3>Installer Laravel 10 sur Windows 10 et 11<\/h3>\n<p><a href=\"https:\/\/docs.docker.com\/desktop\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker Desktop<\/a> peut \u00eatre utilis\u00e9 pour installer rapidement Laravel 10 sur Windows. Cependant, que vous utilisiez Windows 10 ou 11, vous devez d&rsquo;abord activer l&rsquo;une des deux options suivantes sur votre machine :<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/wsl\/install\" target=\"_blank\" rel=\"noopener noreferrer\">Le sous-syst\u00e8me Windows pour Linux 2 (WSL2)<\/a><\/strong> est une fonctionnalit\u00e9 du syst\u00e8me d&rsquo;exploitation Windows qui vous permet d&rsquo;ex\u00e9cuter un syst\u00e8me de fichiers Linux et des outils de ligne de commande Linux directement sur 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\">Fonctionnalit\u00e9 Hyper-V Backend<\/a><\/strong> vous permet de cr\u00e9er et d&rsquo;exploiter une version logicielle d&rsquo;un ordinateur connue sous le nom de machine virtuelle.<\/li>\n<\/ul>\n<p>D\u00e8s que vous avez rempli toutes les <a href=\"https:\/\/docs.docker.com\/desktop\/install\/windows-install\/#install-docker-desktop-on-windows\" target=\"_blank\" rel=\"noopener noreferrer\">conditions requises par Docker<\/a>, vous pouvez ex\u00e9cuter la commande suivante dans votre terminal :<\/p>\n<pre><code class=\"language-bash\">curl -s https:\/\/laravel.build\/example-kinsta-app | bash<\/code><\/pre>\n<p>Utilisez ensuite Sail pour ex\u00e9cuter votre application sur <code><a href=\"http:\/\/localhost\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/localhost<\/a><\/code> en ex\u00e9cutant la commande suivante depuis le r\u00e9pertoire racine de votre projet Laravel 10 nouvellement install\u00e9 :<\/p>\n<pre><code class=\"language-bash\">.\/vendor\/bin\/sail up<\/code><\/pre>\n<p>D&rsquo;ailleurs, de nombreux d\u00e9veloppeurs pr\u00e9f\u00e8rent le syst\u00e8me d&rsquo;exploitation Linux aux autres syst\u00e8mes d&rsquo;exploitation car il leur permet de travailler plus efficacement et plus rapidement. Avec WSL, vous pouvez profiter de la s\u00e9curit\u00e9, des performances et de la compatibilit\u00e9 avec les jeux d&rsquo;<a href=\"https:\/\/ubuntu.com\/tutorials\/install-ubuntu-on-wsl2-on-windows-10#1-overview\" target=\"_blank\" rel=\"noopener noreferrer\">Ubuntu<\/a>. Ubuntu est une distribution ou une version de Linux bien connue pour sa convivialit\u00e9 et sa facilit\u00e9 d&rsquo;utilisation.<\/p>\n<p>Il est recommand\u00e9 d&rsquo;utiliser <a href=\"https:\/\/code.visualstudio.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Visual Studio Code<\/a> et d&rsquo;installer l&rsquo;<a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode-remote.remote-wsl\">extension officielle Microsoft WSL<\/a> pour pouvoir ouvrir n&rsquo;importe quel dossier dans le sous-syst\u00e8me Windows pour Linux, et profiter de l&rsquo;ensemble des fonctionnalit\u00e9s de vscode. En outre, l&rsquo;extension <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-vscode-remote.vscode-remote-extensionpack\" target=\"_blank\" rel=\"noopener noreferrer\">Remote Development<\/a> est une autre option qui est r\u00e9f\u00e9renc\u00e9e dans la documentation Laravel.<\/p>\n<h3>Installer Laravel 10 avec Composer<\/h3>\n<p>Que vous utilisiez macOS ou Windows, Composer peut vous permettre d&rsquo;\u00eatre op\u00e9rationnel avec Laravel 10 en un rien de temps.<\/p>\n<p>Vous devez d&rsquo;abord vous assurer que PHP \u2264 8.1, node, npm et Composer sont install\u00e9s sur votre machine.<\/p>\n<ul>\n<li><strong>Pour macOS :<\/strong> Composer peut \u00eatre install\u00e9 en utilisant <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener noreferrer\">Homebrew<\/a>.<\/li>\n<li><strong>Pour Windows :<\/strong> La derni\u00e8re version stable de Composer peut \u00eatre t\u00e9l\u00e9charg\u00e9e sur le <a href=\"https:\/\/getcomposer.org\/doc\/00-intro.md#installation-windows\" target=\"_blank\" rel=\"noopener noreferrer\">site officiel de Composer<\/a>.<\/li>\n<\/ul>\n<p>Une fois que vous l&rsquo;avez fait, vous pouvez installer Laravel Installer globalement et l&rsquo;utiliser pour installer votre nouvelle application Laravel 10 :<\/p>\n<pre><code class=\"language-bash\">composer global require laravel\/installer\nlaravel new example-kinsta-app<\/code><\/pre>\n<p>Ou, vous pouvez cr\u00e9er une nouvelle application Laravel 10 directement en utilisant uniquement Composer :<\/p>\n<pre><code class=\"language-bash\">composer create-project laravel\/laravel example-kinsta-app<\/code><\/pre>\n<h2>Comment installer Laravel 11<\/h2>\n<p>Nous sommes encore \u00e0 un an de la sortie de Laravel 11. Cependant, Laravel 11 est actuellement disponible pour que vous puissiez tester ses fonctionnalit\u00e9s. Non seulement il est disponible, mais il comprend \u00e9galement <a href=\"https:\/\/github.com\/laravel\/framework\/pulls?q=is%3Apr+is%3Amerged+%5B11.x%5D+in%3Atitle\" target=\"_blank\" rel=\"noopener noreferrer\">quelques PR fusionn\u00e9s<\/a> sur GitHub, comme l&rsquo;abandon du support de PHP 8.1.<\/p>\n<p>Le drapeau <code>--dev<\/code> dans l&rsquo;installateur Laravel installe la branche master du d\u00e9p\u00f4t <code>laravel\/laravel<\/code>, et maintenant que Laravel 10 est sorti, Laravel 11 sera disponible sur la branche master. Si vous utilisez Laravel Installer, il vous suffit d&rsquo;ex\u00e9cuter cette commande dans votre terminal :<\/p>\n<pre><code class=\"language-php\">laravel new example-kinsta-app --dev<\/code><\/pre>\n<p>Ou, si vous pr\u00e9f\u00e9rez utiliser <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>Pour mieux comprendre la commande Composer, voici une explication rapide :<\/p>\n<ul>\n<li><strong><code>laravel\/laravel<\/code>:<\/strong> Le paquet pour l&rsquo;installation de Laravel<\/li>\n<li><strong><code>example-kinsta-app<\/code>:<\/strong> Le nouveau r\u00e9pertoire pour votre nouveau projet (peut \u00eatre modifi\u00e9)<\/li>\n<li><strong><code>dev-master<\/code>:<\/strong> La prochaine version de Laravel (dans ce cas, Laravel 11)<\/li>\n<\/ul>\n<p>Apr\u00e8s avoir install\u00e9 Laravel 11, vous pouvez confirmer la version en naviguant vers le nouveau r\u00e9pertoire <strong>example-kinsta-app<\/strong> et en ex\u00e9cutant cette commande Artisan :<\/p>\n<pre><code class=\"language-php\">$ php artisan --version\nLaravel Framework 11.x-dev<\/code><\/pre>\n<h2>Comment mettre \u00e0 niveau un projet vers Laravel 10<\/h2>\n<p>\u00cates-vous tent\u00e9 de passer \u00e0 Laravel 10 ? L&rsquo;\u00e9quipe centrale de Laravel travaille dur sur la documentation pour fournir un guide de mise \u00e0 niveau simple et transparent, tout en couvrant tous les changements de rupture possibles. N&rsquo;h\u00e9sitez pas \u00e0 consulter le <a href=\"https:\/\/laravel.com\/docs\/master\/upgrade#upgrade-10.0\" target=\"_blank\" rel=\"noopener noreferrer\">guide officiel de mise \u00e0 niveau vers Laravel 10<\/a>.<\/p>\n<p>Vous devriez \u00e9galement garder un \u0153il sur <a href=\"https:\/\/laravelshift.com\/shifts\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Shift<\/a> maintenant que Laravel 10 est sorti. Laravel Shift offre une approche simple et automatis\u00e9e de la mise \u00e0 niveau de votre version de Laravel.<\/p>\n<h2>Comment d\u00e9ployer des projets Laravel 10<\/h2>\n<p>Le d\u00e9ploiement de Laravel 10 n&rsquo;est pas diff\u00e9rent du <a href=\"https:\/\/docs.sevalla.com\/templates\/overview#laravel\">d\u00e9ploiement d&rsquo;un projet Laravel 9<\/a>.<\/p>\n<p>Voici la configuration requise pour le serveur :<\/p>\n<ul>\n<li>PHP \u2264 8.1<\/li>\n<li>Extension PHP Ctype<\/li>\n<li>Extension PHP cURL<\/li>\n<li>Extension DOM PHP<\/li>\n<li>Extension PHP Fileinfo<\/li>\n<li>Extension PHP Mbstring<\/li>\n<li>Extension PHP OpenSSL<\/li>\n<li>Extension PHP PCRE<\/li>\n<li>Extension PHP PDO<\/li>\n<li>Extension PHP Tokenizer<\/li>\n<li>Extension PHP XML<\/li>\n<li>Extension PHP Filter<\/li>\n<li>Extension PHP Hash<\/li>\n<li>Extension PHP Session<\/li>\n<\/ul>\n<p>Vous pouvez d\u00e9ployer et <a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9berger votre projet Laravel 10<\/a> sur Kinsta en quelques minutes puisque Laravel fait partie d&rsquo;une longue liste de <a href=\"https:\/\/docs.sevalla.com\/applications\/reference\/faqs\">frameworks support\u00e9s<\/a> pour les applications h\u00e9berg\u00e9es.<\/p>\n<h3>D\u00e9ployer Laravel 10 sur Kinsta : Guide \u00e9tape par \u00e9tape<\/h3>\n<p>Il y a plusieurs avantages \u00e0 <a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9berger et \u00e0 d\u00e9ployer vos applications Laravel sur Kinsta<\/a>, notamment celui de ne pas avoir \u00e0 s&rsquo;occuper de la configuration du d\u00e9ploiement.<\/p>\n<p>Kinsta fournit un outil convivial mais puissant pour d\u00e9ployer des applications, se connecter \u00e0 des bases de donn\u00e9es et surveiller les performances en direct. Cet outil est connu sous le nom de <a href=\"https:\/\/kinsta.com\/fr\/mykinsta\/\">MyKinsta<\/a>, et dans cette section, nous allons vous guider \u00e0 travers les \u00e9tapes pour d\u00e9ployer une application Laravel 10 en l&rsquo;utilisant.<\/p>\n<h4>1. Pr\u00e9parer votre application<\/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=\"La page d'accueil d'une application Laravel 10 d\u00e9ploy\u00e9e sur Kinsta.\" width=\"1024\" height=\"473\"><figcaption class=\"wp-caption-text\">La page d&rsquo;accueil d&rsquo;une application Laravel 10 d\u00e9ploy\u00e9e sur Kinsta.<\/figcaption><\/figure>\n<p>En supposant que vous ayez une application Laravel 10 en local, nous devons nous assurer qu&rsquo;elle <a href=\"https:\/\/kinsta.com\/fr\/blog\/base-de-connaissances-github\/\">dispose d&rsquo;un d\u00e9p\u00f4t GitHub<\/a>. Nous utiliserons ce d\u00e9p\u00f4t pour d\u00e9ployer l&rsquo;application plus tard.<\/p>\n<p>Vous pouvez inclure un fichier <strong>.htaccess<\/strong> dans le r\u00e9pertoire racine de votre application qui contient les \u00e9l\u00e9ments suivants :<\/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>Pour Laravel, cela redirige toutes les requ\u00eates vers <strong>public\/index.php<\/strong>. Toutefois, si n\u00e9cessaire, vous pouvez mettre \u00e0 jour cette commande lors de l&rsquo;ajout de votre application (\u00e9tape <strong>Configurer vos processus<\/strong> ) ou apr\u00e8s le d\u00e9ploiement, sur la page <strong>Processus<\/strong> de l&rsquo;application. Vous pouvez utiliser :<\/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. Se connecter \u00e0 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=\"La page de connexion de MyKinsta.\" width=\"999\" height=\"674\"><figcaption class=\"wp-caption-text\">La page de connexion de MyKinsta.<\/figcaption><\/figure>\n<p>Rendez-vous sur la <a href=\"https:\/\/my.kinsta.com\/login?lang=fr\" target=\"_blank\" rel=\"noopener noreferrer\">page de connexion de MyKinsta<\/a> et saisissez votre adresse e-mail et votre mot de passe. Si vous n&rsquo;avez pas encore de compte, vous pouvez <a href=\"https:\/\/kinsta.com\/fr\/inscription\/?product_type=app-db\">enregistrer un nouveau compte<\/a> et obtenir 20 $ de r\u00e9duction sur le premier mois de votre <a href=\"https:\/\/kinsta.com\/fr\/tarifs\/?plan=visits-business1#application-hosting\">abonnement \u00e0 n&rsquo;importe quel plan tarifaire<\/a>.<\/p>\n<h4>3. Autoriser Kinsta sur GitHub<\/h4>\n<p>Une fois que vous vous connectez, vous remarquerez que le tableau de bord a des options pour <a href=\"https:\/\/kinsta.com\/fr\/blog\/plateforme-cloud-pour-developpeurs\/#wp\">cr\u00e9er un site WordPress<\/a>, <a href=\"https:\/\/kinsta.com\/fr\/blog\/plateforme-cloud-pour-developpeurs\/#app\">cr\u00e9er une application<\/a>, ou <a href=\"https:\/\/kinsta.com\/fr\/blog\/plateforme-cloud-pour-developpeurs\/#db\">cr\u00e9er une base de donn\u00e9es<\/a>. Nous allons appuyer sur le bouton <strong>Connecter GitHub<\/strong> pour nous <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">int\u00e9grer \u00e0 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=\"Le tableau de bord MyKinsta.\" width=\"1024\" height=\"430\"><figcaption class=\"wp-caption-text\">Le tableau de bord MyKinsta.<\/figcaption><\/figure>\n<p>Ensuite, cliquez sur le bouton <strong>Continuer avec GitHub<\/strong>. Si vous n&rsquo;\u00eates pas d\u00e9j\u00e0 connect\u00e9 \u00e0 GitHub, vous aurez l&rsquo;option de vous connecter. Ensuite, vous pouvez autoriser l&rsquo;application Kinsta GitHub \u00e0 acc\u00e9der \u00e0 votre compte GitHub en s\u00e9lectionnant <strong>Autoriser Kinsta<\/strong>.<\/p>\n<p>Enfin, GitHub redirigera votre navigateur vers MyKinsta afin de poursuivre la configuration de l&rsquo;application.<\/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=\"Connexion de MyKinsta \u00e0 GitHub.\" width=\"1024\" height=\"271\"><figcaption class=\"wp-caption-text\">Connexion de MyKinsta \u00e0 GitHub.<\/figcaption><\/figure>\n<p>Apr\u00e8s avoir \u00e9t\u00e9 connect\u00e9 \u00e0 GitHub, vous verrez appara\u00eetre le popup\/modal <strong>Add Application<\/strong>, qui comporte un menu d\u00e9roulant permettant de s\u00e9lectionner un d\u00e9p\u00f4t GitHub. Cliquez sur le champ du d\u00e9p\u00f4t GitHub et s\u00e9lectionnez <strong>Editer les permissions GitHub<\/strong> dans la liste d\u00e9roulante.<\/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=\"Ajout d'une application \u00e0 MyKinsta.\" width=\"1024\" height=\"430\"><figcaption class=\"wp-caption-text\">Ajout d&rsquo;une application \u00e0 MyKinsta.<\/figcaption><\/figure>\n<p>Cela ouvrira un nouvel onglet dans votre navigateur vers la page web de GitHub, o\u00f9 vous pouvez choisir les donn\u00e9es auxquelles Kinsta pourra acc\u00e9der. Au lieu d&rsquo;autoriser l&rsquo;acc\u00e8s \u00e0 tous les d\u00e9p\u00f4ts, envisagez de choisir uniquement celui ou ceux que vous voulez que Kinsta utilise.<\/p>\n<p>Cliquez sur <strong>S\u00e9lectionner uniquement les d\u00e9p\u00f4ts<\/strong> et choisissez le d\u00e9p\u00f4t que vous souhaitez d\u00e9ployer.<\/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=\"Accordez \u00e0 Kinsta l'acc\u00e8s \u00e0 GitHub.\" width=\"674\" height=\"1024\"><figcaption class=\"wp-caption-text\">Accordez \u00e0 Kinsta l&rsquo;acc\u00e8s \u00e0 GitHub.<\/figcaption><\/figure>\n<p>Cliquez ensuite sur <strong>Installer<\/strong>, et vous \u00eates pr\u00eat !<\/p>\n<p>Lorsque vous revenez \u00e0 MyKinsta et cliquez sur le champ du <strong>d\u00e9p\u00f4t GitHub<\/strong>, le d\u00e9p\u00f4t autoris\u00e9 devrait \u00eatre visible. En outre, vous pouvez cocher la case <strong>D\u00e9ploiement automatique sur commit<\/strong> pour permettre \u00e0 MyKinsta de d\u00e9ployer automatiquement votre application d\u00e8s que vous apportez des modifications au r\u00e9f\u00e9rentiel GitHub.<\/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=\"S\u00e9lection d'une branche de d\u00e9p\u00f4t pour MyKinsta.\" width=\"1024\" height=\"287\"><figcaption class=\"wp-caption-text\">S\u00e9lection d&rsquo;une branche de d\u00e9p\u00f4t pour MyKinsta.<\/figcaption><\/figure>\n<h4>4. Ajouter les d\u00e9tails de base de l&rsquo;application<\/h4>\n<p>Vous pouvez maintenant donner \u00e0 l&rsquo;application un nom qui ne sera utilis\u00e9 que dans le tableau de bord et choisir parmi 25 emplacements de centre de donn\u00e9es, ce qui vous permet de placer votre application dans l&#8217;emplacement g\u00e9ographique le plus proche de vos utilisateurs. Si vous avez besoin d&rsquo;aide pour d\u00e9terminer quel <a href=\"https:\/\/kinsta.com\/fr\/docs\/information-service\/emplacements-centre-de-donnees\/\">centre de donn\u00e9es<\/a> est id\u00e9al pour votre application, consultez notre guide pour <a href=\"https:\/\/kinsta.com\/fr\/docs\/information-service\/emplacements-centre-de-donnees\/\">choisir le bon emplacement de<\/a> <a href=\"https:\/\/kinsta.com\/fr\/docs\/information-service\/emplacements-centre-de-donnees\/\">centre de donn\u00e9es<\/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=\"Ajout des d\u00e9tails de base d'une application.\" width=\"1024\" height=\"423\"><figcaption class=\"wp-caption-text\">Ajout des d\u00e9tails de base d&rsquo;une application.<\/figcaption><\/figure>\n<h4>5. Ajouter des variables d&rsquo;environnement<\/h4>\n<p>La section suivante concerne l&rsquo;ajout de <a href=\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\">variables d&rsquo;environnement<\/a> et la variable la plus importante est le site <code>APP_KEY<\/code>.<\/p>\n<p>Si vous n&rsquo;avez pas encore de cl\u00e9 dans votre fichier .env, vous pouvez en g\u00e9n\u00e9rer une \u00e0 l&rsquo;aide d&rsquo;un <a href=\"https:\/\/generate-random.org\/laravel-key-generator\" target=\"_blank\" rel=\"noopener noreferrer\">g\u00e9n\u00e9rateur de cl\u00e9s Laravel en ligne<\/a>. Ensuite, ins\u00e9rez <code>APP_KEY<\/code> dans le champ <strong>Key 1<\/strong> et ins\u00e9rez la cl\u00e9 d&rsquo;application g\u00e9n\u00e9r\u00e9e dans le champ <strong>Value 1<\/strong>.<\/p>\n<p>Enfin, s\u00e9lectionnez <strong>Disponible pendant l&rsquo;ex\u00e9cution<\/strong> et <strong>Disponible pendant le processus de construction<\/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=\"Ajout de variables d'environnement dans MyKinsta.\" width=\"1024\" height=\"408\"><figcaption class=\"wp-caption-text\">Ajout de variables d&rsquo;environnement dans MyKinsta.<\/figcaption><\/figure>\n<h4>6. Configurer l&rsquo;environnement de construction<\/h4>\n<p>La chose magique ici est que vous n&rsquo;avez pas \u00e0 configurer quoi que ce soit ! Vous pouvez proc\u00e9der en cliquant sur le bouton <strong>Continuer<\/strong>, et voil\u00e0 : vous avez termin\u00e9 la configuration de l&rsquo;environnement de construction. Cependant, si vous voulez am\u00e9liorer les ressources de construction pour assurer une construction plus rapide, vous pouvez choisir votre choix dans le champ <strong>Ressources de construction<\/strong>.<\/p>\n<p>Le champ \u00ab <strong>Chemin de construction <\/strong>\u00bb est facultatif. Vous pouvez le laisser vide, et MyKinsta utilisera le dossier racine.<\/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=\"Configurer l'environnement de construction de l'application.\" width=\"1024\" height=\"742\"><figcaption class=\"wp-caption-text\">Configurer l&rsquo;environnement de construction de l&rsquo;application.<\/figcaption><\/figure>\n<h4>7. Configurer les processus et le moyen de paiement<\/h4>\n<p>Pour la section Ressources, remplissez chaque champ avec les informations suivantes :<\/p>\n<ul>\n<li><strong>Nom du processus :<\/strong> Le nom affich\u00e9 dans la liste des processus de votre application.<\/li>\n<li><strong>Type de processus :<\/strong> Choisissez-le avec soin, car il ne peut pas \u00eatre modifi\u00e9 une fois qu&rsquo;il est d\u00e9fini. Vous pouvez toutefois ajouter et modifier des processus suppl\u00e9mentaires, comme un travail en arri\u00e8re-plan, sur la page Processus de votre application apr\u00e8s le d\u00e9ploiement.<\/li>\n<li><strong>Commande de d\u00e9marrage :<\/strong> La commande \u00ab Start \u00bb de votre processus (non obligatoire).<\/li>\n<li><strong>Taille du pod :<\/strong> La capacit\u00e9 du pod dont vous pensez avoir besoin pour votre processus.<\/li>\n<li><strong>Nombre d&rsquo;instances :<\/strong> Le nombre d&rsquo;instances pour votre processus (max 50).<\/li>\n<\/ul>\n<p>Notez que vous pouvez simplement cliquer sur <strong>Continuer<\/strong> sans remplir le champ Commande de <strong>d\u00e9marrage<\/strong>, car Kinsta d\u00e9tecte automatiquement la commande requise lors du premier d\u00e9ploiement.<\/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=\"Configurer les processus de l'application.\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">Configurer les processus de l&rsquo;application.<\/figcaption><\/figure>\n<p>Pour la derni\u00e8re \u00e9tape, examinez les co\u00fbts d&rsquo;utilisation mensuels calcul\u00e9s pour votre application, puis confirmez votre moyen de paiement. Lorsque vous avez termin\u00e9, cliquez sur le bouton <strong>Confirmer le moyen de paiement<\/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=\"Confirmez les d\u00e9tails du paiement.\" width=\"902\" height=\"744\"><figcaption class=\"wp-caption-text\">Confirmez les d\u00e9tails du paiement.<\/figcaption><\/figure>\n<p>Et c&rsquo;est termin\u00e9 ! Kinsta fera tout le travail en arri\u00e8re-plan pour servir votre application.<\/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=\"Chargement du processus de d\u00e9ploiement de l'application.\" width=\"1024\" height=\"335\"><figcaption class=\"wp-caption-text\">Chargement du processus de d\u00e9ploiement de l&rsquo;application.<\/figcaption><\/figure>\n<p>Vous aurez ensuite acc\u00e8s \u00e0 tous les d\u00e9tails du processus de d\u00e9ploiement, ainsi qu&rsquo;\u00e0 l&rsquo;URL temporaire de l&rsquo;application en direct, que vous pourrez remplacer plus tard par votre propre domaine.<\/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=\"D\u00e9ploiement r\u00e9ussi de l'application Laravel 10 sur MyKinsta.\" width=\"1024\" height=\"746\"><figcaption class=\"wp-caption-text\">D\u00e9ploiement r\u00e9ussi de l&rsquo;application Laravel 10 sur MyKinsta.<\/figcaption><\/figure>\n<p>Votre application Laravel 10 est maintenant en direct sur Kinsta, mais que faire si vous devez effectuer un changement en production ? Que faire si nous voulons modifier l&rsquo;attribut <code>href<\/code> d&rsquo;une balise d&rsquo;ancre ?<\/p>\n<p>Puisque nous avons activ\u00e9 l&rsquo;option de <strong>d\u00e9ploiement automatique sur commit<\/strong>, MyKinsta d\u00e9tectera toute modification que nous apportons \u00e0 la branche d\u00e9ploy\u00e9e et mettra automatiquement \u00e0 jour l&rsquo;application en direct en cons\u00e9quence.<\/p>\n<h4>8. Connectez Laravel 10 \u00e0 la base de donn\u00e9es MySQL<\/h4>\n<p>Maintenant que nous avons d\u00e9ploy\u00e9 notre application Laravel 10, nous pouvons construire sans effort une base de donn\u00e9es et la lier \u00e0 notre application. Tout ce que vous avez \u00e0 faire est de cliquer sur <strong>Applications<\/strong> dans le menu de navigation \u00e0 gauche, puis <strong>Ajouter un service<\/strong> et s\u00e9lectionner <strong>Base de donn\u00e9es<\/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=\"Ajout d'une nouvelle base de donn\u00e9es dans MyKinsta.\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">Ajout d&rsquo;une nouvelle base de donn\u00e9es dans MyKinsta.<\/figcaption><\/figure>\n<p>Apr\u00e8s avoir rempli tous les champs, cliquez sur <strong>Cr\u00e9er une base de donn\u00e9es<\/strong>. Cela \u00e9tablira une nouvelle base de donn\u00e9es pr\u00eate pour les connexions internes et externes. Dans notre sc\u00e9nario, nous avons besoin d&rsquo;une connexion interne au projet Laravel 10 que nous avons d\u00e9ploy\u00e9.<\/p>\n<p>Pour cela, il vous suffit de cliquer sur <strong>Ajouter une application<\/strong> dans la section <strong>Connexions internes<\/strong> et de s\u00e9lectionner votre application. Vous pouvez cocher la case <strong>Ajouter des variables d&rsquo;environnement<\/strong> \u00e0 l&rsquo;application et MyKinsta remplira toutes les variables <code>.env<\/code> dont votre application a besoin.<\/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=\"Connecter une base de donn\u00e9es \u00e0 une application Laravel 10.\" width=\"1024\" height=\"640\"><figcaption class=\"wp-caption-text\">Connecter une base de donn\u00e9es \u00e0 une application Laravel 10.<\/figcaption><\/figure>\n<p>Avec cela, votre application Laravel 10 est d\u00e9ploy\u00e9e et connect\u00e9e \u00e0 une base de donn\u00e9es.<\/p>\n<h2>Comment contribuer \u00e0 Laravel 10<\/h2>\n<p>Bien que Laravel soit maintenu par une \u00e9quipe centrale, il est activement d\u00e9velopp\u00e9 par plus de <a href=\"https:\/\/github.com\/laravel\/framework\/graphs\/contributors\" target=\"_blank\" rel=\"noopener noreferrer\">3 000 contributeurs b\u00e9n\u00e9voles<\/a>.<\/p>\n<p>Voulez-vous faire partie de ces contributeurs et aider \u00e0 fa\u00e7onner l&rsquo;avenir de Laravel ? Si vous avez r\u00e9pondu oui, vous pourriez aider les d\u00e9veloppeurs du monde entier en ajoutant une nouvelle fonctionnalit\u00e9, en corrigeant un bogue ou m\u00eame en r\u00e9\u00e9crivant une partie confuse de la documentation.<\/p>\n<p>Pour contribuer \u00e0 Laravel 10, voici ce que vous devez faire :<\/p>\n<ol>\n<li>Rendez-vous sur le <a href=\"https:\/\/github.com\/laravel\/framework\/pulls?page=2&#038;q=is%3Apr+is%3Amerged+10.x\" target=\"_blank\" rel=\"noopener noreferrer\">d\u00e9p\u00f4t GitHub de Laravel<\/a> et consultez les pull requests dont le titre comporte la mention [10.x]. Vous aurez ainsi une id\u00e9e pr\u00e9cise de toutes les demandes de retrait pour Laravel 10. Si l&rsquo;une des PR aborde la contribution que vous aviez l&rsquo;intention de faire, voyez si vous pouvez l&rsquo;am\u00e9liorer.<\/li>\n<li>Si votre contribution pr\u00e9vue n&rsquo;a pas encore \u00e9t\u00e9 abord\u00e9e par quelqu&rsquo;un d&rsquo;autre, vous pouvez alors cr\u00e9er une PR vous-m\u00eame.<\/li>\n<li>Tout ne vaut pas la peine d&rsquo;\u00eatre ajout\u00e9 \u00e0 la base de code du framework. Par cons\u00e9quent, efforcez-vous de ne mettre en \u0153uvre que des am\u00e9liorations qui seront faciles \u00e0 maintenir \u00e0 l&rsquo;avenir et qui aideront la grande majorit\u00e9 de la communaut\u00e9 Laravel.<\/li>\n<li>Veillez \u00e0 respecter les <a href=\"https:\/\/laravel.com\/docs\/master\/contributions\" target=\"_blank\" rel=\"noopener noreferrer\">directives de contribution de Laravel<\/a> pour avoir plus de chances de voir vos modifications fusionn\u00e9es avec le framework.<\/li>\n<\/ol>\n<p>Une autre raison d&rsquo;aimer Laravel 10 est qu&rsquo;il vous permet de gagner de l&rsquo;argent pour vos contributions gr\u00e2ce aux chasses aux bogues ! Nous y reviendrons plus tard.<\/p>\n<h3>Concours de chasse aux bogues de Laravel 10<\/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=\"The Laravel 10 logo followed by a green cartoon insect with gray stripes. \" width=\"1024\" height=\"576\"><figcaption class=\"wp-caption-text\">Concours de chasse aux bugs de Laravel 10.<\/figcaption><\/figure>\n<p>Laravel 10 a annonc\u00e9 un excellent concours dans lequel un contributeur choisi au hasard a la chance de gagner 1 000 $. Il s&rsquo;agit du premier concours de ce type dans l&rsquo;histoire de Laravel. Il a \u00e9t\u00e9 con\u00e7u pour encourager la communaut\u00e9 \u00e0 trouver et \u00e0 corriger les bugs cach\u00e9s dans Laravel 10.<\/p>\n<p>Les r\u00e8gles \u00e9taient simples :<\/p>\n<ul>\n<li>Seuls les PR soumis \u00e0 la branche 10.x du d\u00e9p\u00f4t <code>laravel\/framework<\/code> \u00e9taient \u00e9ligibles.<\/li>\n<li>Seules les corrections de bogues \u00ab authentiques \u00bb \u00e9taient prises en compte. Les nouvelles fonctionnalit\u00e9s, le remaniement et les corrections de fautes de frappe ne sont pas pris en compte.<\/li>\n<li>Chaque correction de bogue doit \u00eatre soutenue par un test.<\/li>\n<li>Les corrections de bogues accept\u00e9es ont \u00e9t\u00e9 \u00e9tiquet\u00e9es sur GitHub, et un gagnant al\u00e9atoire sera annonc\u00e9 apr\u00e8s la conclusion du concours.<\/li>\n<\/ul>\n<p>Le concours s&rsquo;est termin\u00e9 lorsque la premi\u00e8re version stable de Laravel 10 a \u00e9t\u00e9 publi\u00e9e le 14 f\u00e9vrier 2023.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Jusqu&rsquo;\u00e0 pr\u00e9sent, Laravel 10 semble \u00eatre extr\u00eamement prometteur, et nous sommes impatients de d\u00e9couvrir tous les cadeaux qu&rsquo;il apporte au monde PHP.<\/p>\n\n<p>Si vous cherchez d&rsquo;autres <a href=\"https:\/\/kinsta.com\/fr\/blog\/methodes-optimisation-performances-laravel\/\">moyens d&rsquo;am\u00e9liorer les performances de votre application Laravel<\/a>, vous pourriez envisager de passer \u00e0 un fournisseur d&rsquo;h\u00e9bergement premium. Les <a href=\"https:\/\/sevalla.com\/application-hosting\/\">solutions d&rsquo;h\u00e9bergement d&rsquo;applications de Kinsta<\/a> sont parmi les plus rapides, les plus s\u00e9curis\u00e9es et les plus faciles \u00e0 utiliser du secteur, et elles sont sp\u00e9cialement con\u00e7ues pour les d\u00e9veloppeurs, offrant une rationalisation de la production et un support expert 24\/7 par nos propres d\u00e9veloppeurs chevronn\u00e9s.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Plus de dix ans apr\u00e8s l&rsquo;introduction du framework Laravel, tr\u00e8s populaire, vous \u00eates-vous d\u00e9j\u00e0 demand\u00e9 : \u00ab Que peut encore offrir Laravel aux d\u00e9veloppeurs PHP ? &#8230;<\/p>\n","protected":false},"author":266,"featured_media":66349,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[986],"class_list":["post-66348","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>Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s<\/title>\n<meta name=\"description\" content=\"Dans cet article, nous vous emm\u00e8nerons \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fra\u00eechement d\u00e9pr\u00e9ci\u00e9s de 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\/fr\/blog\/laravel-10\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s\" \/>\n<meta property=\"og:description\" content=\"Dans cet article, nous vous emm\u00e8nerons \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fra\u00eechement d\u00e9pr\u00e9ci\u00e9s de Laravel 10.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-14T15:08:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-03T02:57:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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=\"Dans cet article, nous vous emm\u00e8nerons \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fra\u00eechement d\u00e9pr\u00e9ci\u00e9s de Laravel 10.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mostafa Said\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"31 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/\"},\"author\":{\"name\":\"Mostafa Said\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996\"},\"headline\":\"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s\",\"datePublished\":\"2023-02-14T15:08:27+00:00\",\"dateModified\":\"2023-11-03T02:57:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/\"},\"wordCount\":6262,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/\",\"name\":\"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png\",\"datePublished\":\"2023-02-14T15:08:27+00:00\",\"dateModified\":\"2023-11-03T02:57:36+00:00\",\"description\":\"Dans cet article, nous vous emm\u00e8nerons \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fra\u00eechement d\u00e9pr\u00e9ci\u00e9s de Laravel 10.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"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\/fr\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996\",\"name\":\"Mostafa Said\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/mostafasaid\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s","description":"Dans cet article, nous vous emm\u00e8nerons \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fra\u00eechement d\u00e9pr\u00e9ci\u00e9s de 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\/fr\/blog\/laravel-10\/","og_locale":"fr_FR","og_type":"article","og_title":"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s","og_description":"Dans cet article, nous vous emm\u00e8nerons \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fra\u00eechement d\u00e9pr\u00e9ci\u00e9s de Laravel 10.","og_url":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-02-14T15:08:27+00:00","article_modified_time":"2023-11-03T02:57:36+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png","type":"image\/png"}],"author":"Mostafa Said","twitter_card":"summary_large_image","twitter_description":"Dans cet article, nous vous emm\u00e8nerons \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fra\u00eechement d\u00e9pr\u00e9ci\u00e9s de Laravel 10.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Mostafa Said","Dur\u00e9e de lecture estim\u00e9e":"31 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/"},"author":{"name":"Mostafa Said","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996"},"headline":"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s","datePublished":"2023-02-14T15:08:27+00:00","dateModified":"2023-11-03T02:57:36+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/"},"wordCount":6262,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/","url":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/","name":"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png","datePublished":"2023-02-14T15:08:27+00:00","dateModified":"2023-11-03T02:57:36+00:00","description":"Dans cet article, nous vous emm\u00e8nerons \u00e0 la d\u00e9couverte des nouvelles fonctionnalit\u00e9s, des correctifs et des m\u00e9thodes et paquets fra\u00eechement d\u00e9pr\u00e9ci\u00e9s de Laravel 10.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/laravel-10\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/02\/laravel-10.png","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/fr\/sujets\/laravel\/"},{"@type":"ListItem","position":3,"name":"Nouveaut\u00e9s de Laravel 10 : une plong\u00e9e en profondeur dans les derni\u00e8res mises \u00e0 jour et fonctionnalit\u00e9s"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","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\/fr\/#\/schema\/person\/e96baff25a5ee7e63a525f9557f79996","name":"Mostafa Said","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/mostafasaid\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/66348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/266"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=66348"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/66348\/revisions"}],"predecessor-version":[{"id":67075,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/66348\/revisions\/67075"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/en"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/fr"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/de"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/dk"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/translations\/jp"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/66348\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/66349"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=66348"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=66348"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=66348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}