{"id":71705,"date":"2023-08-04T08:24:55","date_gmt":"2023-08-04T07:24:55","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=71705&#038;preview=true&#038;preview_id=71705"},"modified":"2023-10-12T13:34:00","modified_gmt":"2023-10-12T12:34:00","slug":"blog-laravel","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/","title":{"rendered":"Comment cr\u00e9er un blog dans Laravel"},"content":{"rendered":"<p><a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-que-laravel\/\">Laravel<\/a> est un framework d&rsquo;application web PHP dot\u00e9 d&rsquo;une syntaxe expressive et \u00e9l\u00e9gante. Il dispose d&rsquo;une vaste biblioth\u00e8que de paquets et prend en charge une grande partie du travail de programmation, ce qui vous permet de vous concentrer sur votre cr\u00e9ativit\u00e9.<\/p>\n<p>L&rsquo;une des utilisations cr\u00e9atives de Laravel est la construction d&rsquo;un blog personnel. Ce tutoriel d\u00e9crit comment utiliser Laravel pour cr\u00e9er et publier un blog sur Kinsta.<\/p>\n<p>Pour un aper\u00e7u du projet, consultez le <a href=\"https:\/\/github.com\/VirtuaCreative\/kinsta-laravel-blog\" target=\"_blank\" rel=\"noopener noreferrer\">code complet du projet<\/a>.<\/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>Pr\u00e9-requis<\/h2>\n<p>Pour suivre ce tutoriel, assurez-vous d&rsquo;avoir les \u00e9l\u00e9ments suivants :<\/p>\n<ul>\n<li>Un serveur web. Ce tutoriel utilise <a href=\"https:\/\/www.apachefriends.org\/download.htmlss.html\" target=\"_blank\" rel=\"noopener noreferrer\">XAMPP<\/a>.<\/li>\n<li>Un compte sur GitHub, GitLab ou Bitbucket pour publier le code de votre application.<\/li>\n<li><a href=\"https:\/\/laravel.com\/docs\/7.x\/installation\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel install\u00e9<\/a>.<\/li>\n<li>Un compte MyKinsta actif pour l&rsquo;h\u00e9bergement de l&rsquo;application. <a href=\"https:\/\/kinsta.com\/fr\/inscription\/?product_type=app-db\">Inscrivez-vous pour un essai gratuit<\/a> si vous n&rsquo;en avez pas d\u00e9j\u00e0 un.<\/li>\n<\/ul>\n<p>Assurez-vous que les services <strong>Apache <\/strong>et <strong>MySQL <\/strong>fonctionnent dans le panneau de contr\u00f4le XAMPP. Si ce n&rsquo;est pas le cas, cliquez sur le bouton <strong>D\u00e9marrer <\/strong>de chaque service dans la colonne<strong> Actions<\/strong>. Votre panneau de contr\u00f4le XAMPP devrait ressembler \u00e0 ceci :<\/p>\n<figure style=\"width: 1089px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/xampp-control-panel-apache-mysql.png\" alt=\"Panneau de contr\u00f4le XAMPP\" width=\"1089\" height=\"448\"><figcaption class=\"wp-caption-text\">Panneau de contr\u00f4le XAMPP<\/figcaption><\/figure>\n<p>Par d\u00e9faut, MySQL\/MariaDB fonctionne sur le port 3306. Prenez note du port si vous le changez.<\/p>\n<p>Si vous utilisez un serveur web autre que XAMPP, assurez-vous que vous utilisez <a href=\"https:\/\/httpd.apache.org\/download.cgi\" target=\"_blank\" rel=\"noopener noreferrer\">Apache<\/a> ou un autre logiciel serveur et que vous avez install\u00e9 le <a href=\"https:\/\/mariadb.org\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">serveur MariaDB<\/a> sur votre machine locale.<\/p>\n<h3>D\u00e9marrage rapide avec phpMyAdmin<\/h3>\n<ol start=\"1\">\n<li>Une fois que MySQL et Apache fonctionnent, allez dans votre navigateur.<\/li>\n<li>Ouvrez phpMyAdmin et collez <code>http:\/\/localhost\/phpmyadmin\/<\/code>. Il devrait afficher ce qui suit :<\/li>\n<\/ol>\n<figure style=\"width: 1359px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/phpmyadmin-apache-mysql.png\" alt=\"phpMyAdmin ouvert dans le navigateur.\" width=\"1359\" height=\"397\"><figcaption class=\"wp-caption-text\">phpMyAdmin ouvert dans le navigateur.<\/figcaption><\/figure>\n<p>phpMyAdmin est un outil de gestion de base de donn\u00e9es pour MySQL et MariaDB.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Vous pouvez utiliser n&rsquo;importe quel syst\u00e8me de gestion de base de donn\u00e9es, mais ce tutoriel utilise MariaDB, dont la connexion \u00e0 Laravel est similaire \u00e0 celle de MySQL. La configuration de Laravel est la m\u00eame pour les deux bases de donn\u00e9es.<\/p>\n<\/aside>\n\n<h2>Cr\u00e9er un nouveau projet Laravel<\/h2>\n<p>Vous pouvez maintenant commencer \u00e0 cr\u00e9er le blog en utilisant Laravel. Pour ce tutoriel, nous avons utilis\u00e9 un ordinateur fonctionnant sous Windows.<\/p>\n<ol start=\"1\">\n<li>Acc\u00e9dez au terminal ou \u00e0 l&rsquo;interface de ligne de commande (CLI) de votre machine.<\/li>\n<li>Cr\u00e9ez un projet Laravel appel\u00e9 <strong>blog<\/strong> \u00e0 l&rsquo;aide de la commande <code>laravel new blog<\/code>.<\/li>\n<li>Ouvrez le r\u00e9pertoire <strong>blog<\/strong> de votre projet avec la commande <code>cd blog<\/code>.<\/li>\n<li>Ensuite, ouvrez le r\u00e9pertoire dans votre \u00e9diteur de code.<\/li>\n<li>Pour v\u00e9rifier que vous avez bien construit le projet, ex\u00e9cutez <code>php artisan serve<\/code> dans votre terminal ou CMD.<\/li>\n<li>Cliquez sur la sortie de l&rsquo;adresse locale pour la transmettre au navigateur. Le navigateur doit afficher la page d&rsquo;accueil par d\u00e9faut de Laravel, illustr\u00e9e ci-dessous :<\/li>\n<\/ol>\n<figure style=\"width: 1279px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-welcome.png\" alt=\"Page d'accueil Laravel\" width=\"1279\" height=\"801\"><figcaption class=\"wp-caption-text\">Page d&rsquo;accueil Laravel<\/figcaption><\/figure>\n<h3>Configurer la base de donn\u00e9es<\/h3>\n<p>Cr\u00e9ez et configurez la base de donn\u00e9es en retournant \u00e0 <strong>phpMyAdmin<\/strong> dans votre navigateur et en cr\u00e9ant une base de donn\u00e9es appel\u00e9e <strong>blog<\/strong>.<\/p>\n<ol start=\"1\">\n<li>Pour cr\u00e9er la base de donn\u00e9es, dans l&rsquo;onglet <strong>Bases de donn\u00e9es<\/strong>, saisissez \u00ab blog \u00bb dans le champ <strong>Cr\u00e9er une base de donn\u00e9es<\/strong>.<\/li>\n<li>Cliquez ensuite sur <strong>Cr\u00e9er<\/strong>.<\/li>\n<\/ol>\n<figure style=\"width: 1042px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/phpmyadmin-create-database.png\" alt=\"Cr\u00e9ation d'une base de donn\u00e9es dans le panneau phpMyAdmin\" width=\"1042\" height=\"312\"><figcaption class=\"wp-caption-text\">Cr\u00e9ation d&rsquo;une base de donn\u00e9es dans le panneau phpMyAdmin<\/figcaption><\/figure>\n<ol start=\"3\">\n<li>Ensuite, mettez \u00e0 jour la connexion \u00e0 la base de donn\u00e9es dans votre fichier <strong>.env<\/strong> \u00e0 la racine de votre projet de blog. Remplacez les valeurs <code>DB_DATABASE<\/code> et <code>DB_PASSWORD<\/code> par celles que vous avez cr\u00e9\u00e9es.<\/li>\n<\/ol>\n<p>Les d\u00e9tails de la connexion doivent ressembler \u00e0 ceci :<\/p>\n<pre><code class=\"language-markdown\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=blog\nDB_USERNAME=your-db-username\nDB_PASSWORD=your-db-password<\/code><\/pre>\n<p>Les autres d\u00e9tails de connexion \u00e0 la base de donn\u00e9es restent les m\u00eames que dans le fichier <strong>.env<\/strong>. Si vous modifiez une valeur de connexion, par exemple en changeant <code>DB_PORT<\/code> de 3306 \u00e0 3307 pendant la configuration, assurez-vous de la mettre \u00e0 jour dans le fichier <strong>.env<\/strong>.<\/p>\n<h3>Cr\u00e9er la table Posts<\/h3>\n<p>Ensuite, cr\u00e9ez un mod\u00e8le de base de donn\u00e9es et migrez les modifications.<\/p>\n<ol start=\"1\">\n<li>Dans votre terminal, ex\u00e9cutez <code>php artisan make:model Post -mc<\/code> pour cr\u00e9er un mod\u00e8le appel\u00e9 <strong>Post<\/strong>, une table appel\u00e9e <strong>posts<\/strong>, un fichier de migration et un contr\u00f4leur.<\/li>\n<\/ol>\n<figure style=\"width: 1154px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/terminal-php-artisan-make-model.png\" alt=\"Cr\u00e9ation d'un mod\u00e8le, d'un fichier de migration et d'un contr\u00f4leur \u00e0 l'aide de la ligne de commande.\" width=\"1154\" height=\"140\"><figcaption class=\"wp-caption-text\">Cr\u00e9ation d&rsquo;un mod\u00e8le, d&rsquo;un fichier de migration et d&rsquo;un contr\u00f4leur \u00e0 l&rsquo;aide de la ligne de commande.<\/figcaption><\/figure>\n<ol start=\"2\">\n<li>V\u00e9rifiez le r\u00e9pertoire <strong>database\/migrations<\/strong> et ouvrez le fichier de migration que vous venez de cr\u00e9er. Il a le format suivant : <code>YYYY_MM_DD_ID_create_posts_table.php<\/code>.<\/li>\n<li>Dans la m\u00e9thode <code>up()<\/code> du fichier de migration, cr\u00e9ez un sch\u00e9ma avec les attributs <code>title<\/code>, <code>description<\/code> et <code>image<\/code>.<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public function up() {\n  Schema::create('posts', function (Blueprint $table) {\n    $table-&gt;id();\n    $table-&gt;string('title')-&gt;nullable();\n    $table-&gt;text('description')-&gt;nullable();\n    $table-&gt;string('image')-&gt;nullable();\n    $table-&gt;timestamps();\n  });\n}<\/code><\/pre>\n<ol start=\"4\">\n<li>Maintenant, allez dans votre terminal et migrez les changements en utilisant <code>php artisan migrate<\/code>, comme indiqu\u00e9 ci-dessous :<\/li>\n<\/ol>\n<figure style=\"width: 1200px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/terminal-php-artisan-migrate.png\" alt=\"Migration de la base de donn\u00e9es Laravel\" width=\"1200\" height=\"224\"><figcaption class=\"wp-caption-text\">Migration de la base de donn\u00e9es Laravel<\/figcaption><\/figure>\n<ol start=\"5\">\n<li>Allez dans <strong>phpMyAdmin<\/strong> dans votre navigateur, o\u00f9 vous verrez la table <strong>posts <\/strong>:<\/li>\n<\/ol>\n<figure style=\"width: 990px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/phpmyadmin-posts-table.png\" alt=\"La table posts migr\u00e9e est affich\u00e9e dans phpMyAdmin\" width=\"990\" height=\"315\"><figcaption class=\"wp-caption-text\">La table posts migr\u00e9e est affich\u00e9e dans phpMyAdmin<\/figcaption><\/figure>\n<h3>Comment cr\u00e9er des contr\u00f4leurs<\/h3>\n<p>L&rsquo;ajout de vues et de contr\u00f4leurs permet de mettre en \u0153uvre votre logique pour l&rsquo;ensemble de la base de donn\u00e9es. Les vues sont les interfaces utilisateur qui affichent les objets de donn\u00e9es du mod\u00e8le. Les contr\u00f4leurs g\u00e8rent le flux d&rsquo;ex\u00e9cution des donn\u00e9es entre le mod\u00e8le et les vues.<\/p>\n<ol start=\"1\">\n<li>Avant de cr\u00e9er les fichiers Blade, ex\u00e9cutez <code>npm install<\/code>, suivi de <code>npm run dev<\/code> dans votre terminal. La premi\u00e8re commande installe les paquets npm requis. La seconde commande d\u00e9marre un serveur de d\u00e9veloppement Vite.<\/li>\n<li>Allez dans le r\u00e9pertoire <strong>app\/Http\/Controllers<\/strong>, ouvrez le fichier <strong>PostController.php<\/strong> et cr\u00e9ez une m\u00e9thode de contr\u00f4leur <code>index<\/code>. La m\u00e9thode contr\u00f4leur rend un texte simple au navigateur. Pour ce faire, ajoutez le code suivant \u00e0 la classe <code>PostController<\/code>:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public function index() {\n  $post = \"Laravel Tutorial Series One!\";\n  return view('posts.index', ['post'=&gt;$post]);\n}<\/code><\/pre>\n<p>Cette m\u00e9thode transmet <code>$post<\/code> comme variable de contexte \u00e0 la section <code>views<\/code> du mod\u00e8le d&rsquo;index Blade. <code>$post<\/code> contient le texte \u00e0 afficher, qui, ici, dit \u00ab Laravel Tutorial Series One ! \u00bb Vous remplacerez ce texte par la boucle des articles plus tard.<\/p>\n<ol start=\"3\">\n<li>Cr\u00e9ez deux nouveaux r\u00e9pertoires dans le r\u00e9pertoire<strong> resources\/views<\/strong>: <strong>layouts <\/strong>et <strong>posts<\/strong>.<\/li>\n<li>Dans le r\u00e9pertoire <strong>layouts <\/strong>, cr\u00e9ez un fichier <strong>app.blade.php<\/strong>. Les autres fichiers Blade en h\u00e9riteront.<\/li>\n<li>Copiez ce code dans <strong>app.blade.php<\/strong>:<\/li>\n<\/ol>\n<pre><code class=\"language-php\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"{{ str_replace('_', '-', app()-&gt;getLocale()) }}\"&gt;\n\n&lt;head&gt;\n  &lt;meta charset=\"utf-8\"&gt;\n  &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"&gt;\n  &lt;title&gt;Blog&lt;\/title&gt;\n  &lt;!-- Styles \u2192\n  &lt;link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.2.3\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\" integrity=\"sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65\" crossorigin=\"anonymous\"&gt;\n  @vite(['resources\/css\/app.css', 'resources\/js\/app.js'])\n&lt;\/head&gt;\n\n&lt;!-- Navbar \u2192\n&lt;header&gt;\n  &lt;nav class=\"navbar bg-primary\"&gt;\n    &lt;div class=\"container-fluid\"&gt;\n      &lt;a class=\"navbar-brand\" href=\"{{ route('posts.index') }}\"&gt;Mini-Blog&lt;\/a&gt;\n    &lt;\/div&gt;\n  &lt;\/nav&gt;\n&lt;\/header&gt;\n\n<!-- Body -->\n&lt;!-- Body --&gt;\n&lt;body&gt;\n  @yield('content')\n&lt;\/body&gt;\n\n<!-- Footer -->\n&lt;!-- Footer --&gt;\n&lt;footer <span id=\"urn:enhancement-0504155e-3906-4a25-a0ce-6d794d72bf4a\" class=\"textannotation\">class<\/span>=\"footer mt-auto py-3 bg-dark\"&gt;\n  &lt;<span id=\"urn:enhancement-384c35c3-a3ae-4b84-bba2-3cb62cdb22bc\" class=\"textannotation\">div<\/span> <span id=\"urn:enhancement-62062545-0936-4aaf-a1e3-0cc3e526f811\" class=\"textannotation\">class<\/span>=\"<span id=\"urn:enhancement-f6d4b182-a548-4974-813b-de26da0a42eb\" class=\"textannotation\">container<\/span> d-lg-flex justify-content-between\"&gt;\n    &lt;span <span id=\"urn:enhancement-289f2384-0ecd-43fb-9ac6-8a4caa954bee\" class=\"textannotation\">class<\/span>=\"<span id=\"urn:enhancement-e82f4bba-9d4f-40c6-af7d-91528ed8ecfa\" class=\"textannotation\">text<\/span>-light\"&gt;Mini-<span id=\"urn:enhancement-724cb28f-5567-4136-9daa-2626024d955c\" class=\"textannotation\">Blog<\/span> \u00a9 2023&lt;\/span&gt;\n  &lt;\/<span id=\"urn:enhancement-4a1e1b07-0936-40d2-87e5-8782167adf8c\" class=\"textannotation\">div<\/span>&gt;\n&lt;\/footer&gt;\n\n&lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/sweetalert2@11\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.2.3\/dist\/js\/bootstrap.bundle.min.js\"  integrity=\"sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK\/7HAuoJl+0I4\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>En utilisant ce code HTML, vous importez Bootstrap version 5.2.3 et Vite pour regrouper les actifs JavaScript et CSS. La page g\u00e9n\u00e9r\u00e9e comporte un en-t\u00eate avec une barre de navigation et un pied de page avec les scripts appel\u00e9s en dessous. Dans le corps de la page, le contenu dynamique est rendu \u00e0 partir d&rsquo;autres fichiers Blade \u00e0 l&rsquo;aide de <code>@yield('content')<\/code>.<\/p>\n<p>Le r\u00e9pertoire <strong>posts <\/strong>contient les fichiers Blade pour la mise en \u0153uvre des op\u00e9rations de cr\u00e9ation et de lecture.<\/p>\n<ol start=\"6\">\n<li>Dans le r\u00e9pertoire <strong>posts <\/strong>, cr\u00e9ez un fichier Blade appel\u00e9 <strong>index.blade.php<\/strong> et ajoutez le code suivant :<\/li>\n<\/ol>\n<pre><code class=\"language-php\">@extends('layouts.app')\n@section('content')\n&lt;div class=\"container\"&gt;\n  &lt;div class=\"titlebar\"&gt;\n    &lt;h1&gt;Blog list&lt;\/h1&gt;\n  &lt;\/div&gt;\n  &lt;hr&gt;\n  &lt;p&gt;The Blog 1 - {{ $post }}&lt;\/p&gt;\n&lt;\/div&gt;\n@endsection<\/code><\/pre>\n<p>Ce code s&rsquo;\u00e9tend \u00e0 partir du fichier <strong>app.blade.php<\/strong> de la page de pr\u00e9sentation. Lorsqu&rsquo;il est rendu dans le navigateur, il affiche le contenu de chaque article de blog ainsi que la barre de navigation et le pied de page h\u00e9rit\u00e9s du fichier <strong>app.blade.php <\/strong>dans le r\u00e9pertoire <strong>layouts<\/strong>. Entre les balises de section, vous transmettez le contenu du contr\u00f4leur \u00e0 rendre dans le navigateur lorsque vous ex\u00e9cutez l&rsquo;application.<\/p>\n<ol start=\"7\">\n<li>D\u00e9finissez la route dans le r\u00e9pertoire <strong>routes<\/strong>. La d\u00e9finition de la route permet le chargement automatique par <code>RouteServiceProvider<\/code> dans le r\u00e9pertoire <strong>App\/Providers<\/strong>. La classe <code>RouteServiceProvider<\/code> est responsable du chargement des fichiers de routes de l&rsquo;application.<\/li>\n<li>Dans le fichier <strong>routes\/web.php<\/strong>, importez <strong>PostController <\/strong>en utilisant <code>use AppHttpControllersPostController<\/code>.<\/li>\n<li>Ensuite, d\u00e9finissez la route en ajoutant <code>Route::resource('posts', PostController::class);<\/code> au fichier <strong>routes\/web.php<\/strong>.<\/li>\n<li>Le serveur de d\u00e9veloppement Vite \u00e9tant toujours en cours d&rsquo;ex\u00e9cution, utilisez <code>php artisan serve<\/code> pour ex\u00e9cuter l&rsquo;application dans votre terminal.<\/li>\n<li>Avec votre navigateur, ouvrez <code>http:\/\/127.0.0.1:8000\/posts<\/code> pour voir votre nouvelle liste d&rsquo;articles de blog.<\/li>\n<\/ol>\n<p>La page devrait ressembler \u00e0 ce qui suit :<\/p>\n<figure style=\"width: 1280px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/laravel-blog-list-preview.png\" alt=\"L'application blog est affich\u00e9e dans le navigateur\" width=\"1280\" height=\"267\"><figcaption class=\"wp-caption-text\">L&rsquo;application blog est affich\u00e9e dans le navigateur<\/figcaption><\/figure>\n<p>Dans la section suivante, nous d\u00e9finissons les m\u00e9thodes du contr\u00f4leur pour l&rsquo;affichage de tous les articles, la cr\u00e9ation d&rsquo;un article et le stockage d&rsquo;un article. Ensuite, nous ajoutons leurs routes et cr\u00e9ons les fichiers Blade dans les sections correspondantes.<\/p>\n<h2>Cr\u00e9er la page des articles de blog<\/h2>\n<p>Cr\u00e9ez des articles de blog en saisissant un titre, en ajoutant une description et en t\u00e9l\u00e9verseant une image. Affichez ensuite vos articles dans un ordre s\u00e9quentiel.<\/p>\n<ol start=\"1\">\n<li>Dans le r\u00e9pertoire <strong>app\/Models<\/strong>, ouvrez le fichier <strong>Post.php<\/strong>.<\/li>\n<li>Dans la classe <code>Post<\/code>, sous le bloc de code <code>use HasFactory;<\/code>, ajoutez <code>protected $fillable = ['title', 'description', 'image'];<\/code>.<\/li>\n<\/ol>\n<p>Ce code prot\u00e8ge les attributs de votre mod\u00e8le contre les assignations de masse.<\/p>\n<ol start=\"3\">\n<li>Dans votre fichier <strong>app\/Http\/Controllers\/PostController.php<\/strong>, importez le mod\u00e8le <code>Post<\/code> en utilisant <code>use AppModelsPost;<\/code>.<\/li>\n<li>Remplacez les m\u00e9thodes de contr\u00f4leur <code>index<\/code> et <code>create<\/code> cr\u00e9\u00e9es pr\u00e9c\u00e9demment dans la classe <code>PostController<\/code> par le code ci-dessous :<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ Show all posts\npublic function index() {\n  $posts = Post::orderBy('created_at', 'desc')-&gt;get();\n  return view('posts.index', ['posts' =&gt; $posts]);\n}\n    \n\/\/ Create post\npublic function create() {\n  return view('posts.create');\n}<\/code><\/pre>\n<p>Dans la m\u00e9thode <code>index<\/code> que vous venez de cr\u00e9er, l&rsquo;application PHP r\u00e9cup\u00e8re tous les articles, les classe par ordre chronologique et les stocke dans une variable <code>posts<\/code>. Dans la vue de retour, les articles passent dans le fichier <strong>index.blade.php<\/strong> en tant que variable contextuelle dans le r\u00e9pertoire <strong>views\/posts<\/strong>. La m\u00e9thode <code>create<\/code> renvoie un fichier <strong>create.blade.php<\/strong> et le place dans le r\u00e9pertoire <strong>views\/posts<\/strong> si un utilisateur tente de cr\u00e9er un nouveau message.<\/p>\n<ol start=\"5\">\n<li>Cr\u00e9ez une m\u00e9thode de contr\u00f4leur <code>store<\/code> en utilisant le code ci-dessous (pour stocker les articles de blog dans la base de donn\u00e9es). Ajoutez ce code \u00e0 la classe <code>PostController<\/code> sous les m\u00e9thodes de contr\u00f4le <code>index<\/code> et <code>create<\/code>.<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ Store post\npublic function store(Request $request) {\n  \/\/ validations\n  $request-&gt;validate([\n    'title' =&gt; 'required',\n    'description' =&gt; 'required',\n    'image' =&gt; 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',\n  ]);\n\n  $post = new Post;\n\n  $file_name = time() . '.' . request()-&gt;image-&gt;getClientOriginalExtension();\n  request()-&gt;image-&gt;move(public_path('images'), $file_name);\n\n  $post-&gt;title = $request-&gt;title;\n  $post-&gt;description = $request-&gt;description;\n  $post-&gt;image = $file_name;\n\n  $post-&gt;save();\n  return redirect()-&gt;route('posts.index')-&gt;with('success', 'Post created successfully.');\n}<\/code><\/pre>\n<p>La m\u00e9thode <code>store<\/code> g\u00e8re les requ\u00eates du client concernant les donn\u00e9es contenues dans son corps, elle prend donc <code>request<\/code> en argument. Ensuite, vous validez les champs utilis\u00e9s lors de la cr\u00e9ation d&rsquo;un article et cr\u00e9ez une instance <code>post<\/code> \u00e0 partir du mod\u00e8le <code>Post<\/code>. Les donn\u00e9es des champs saisis sont ensuite affect\u00e9es \u00e0 l&rsquo;instance cr\u00e9\u00e9e et sauvegard\u00e9es. La page redirige vers la vue <code>index<\/code> avec un texte flash indiquant \u00ab Post created successfully \u00bb.<\/p>\n<h3>Ajouter des routes \u00e0 vos articles<\/h3>\n<p>Pour enregistrer les routes dans votre fichier <strong>web.php<\/strong>:<\/p>\n<ol start=\"1\">\n<li>Dans le r\u00e9pertoire <strong>routes<\/strong> \u00e0 la racine de votre projet, ouvrez le fichier <strong>web.php<\/strong>.<\/li>\n<li>Enregistrez les routes des m\u00e9thodes du contr\u00f4leur en rempla\u00e7ant le code existant par celui-ci :<\/li>\n<\/ol>\n<pre><code class=\"language-php\">&lt;?php\n\nuse Illuminate\\Support\\Facades\\Route;\nuse <span id=\"urn:enhancement-26f688a3-4008-4a60-a96f-75d1d7c98684\" class=\"textannotation\">App<\/span>\\<span id=\"urn:enhancement-d8c4759b-4ecd-42a7-a251-5d2557f5fd11\" class=\"textannotation\">Http<\/span>\\Controllers\\PostController;\n\nRoute::resource('\/', PostController::class)-&gt;names([\n  'index' =&gt; 'posts.index',\n  'create' =&gt; 'posts.create',\n  'store' =&gt; 'posts.store',\n  'show' =&gt; 'posts.show',\n]);<\/code><\/pre>\n<p>Ce contr\u00f4leur utilise ces routes pour cr\u00e9er, stocker et afficher vos objets de donn\u00e9es.<\/p>\n<h3>Cr\u00e9ation des fichiers Blade<\/h3>\n<p>Pour cr\u00e9er les vues, revenez \u00e0 la classe <code>PostController<\/code>:<\/p>\n<ol start=\"1\">\n<li>Dans le r\u00e9pertoire <strong>resources\/views\/posts<\/strong>, cr\u00e9ez un fichier Blade appel\u00e9 <strong>create.blade.php<\/strong> et ajoutez le code ci-dessous :<\/li>\n<\/ol>\n<pre><code class=\"language-php\">@extends('layouts.app')\n@section('content')\n&lt;div class=\"container\"&gt;\n  &lt;h1&gt;Add Post&lt;\/h1&gt;\n  &lt;section <span id=\"urn:enhancement-03c2cb79-5c85-4794-9ee4-0c5c4c0f6f14\" class=\"textannotation\">class<\/span>=\"mt-3\"&gt;\n    &lt;form <span id=\"urn:enhancement-4709801a-0fe6-4cdc-8a5a-5378d938caf3\" class=\"textannotation\">method<\/span>=\"post\" <span id=\"urn:enhancement-41de0c02-59f6-4de7-8a4e-6c8ebfa7d1cd\" class=\"textannotation\">action<\/span>=\"{{ <span id=\"urn:enhancement-cf5b92a7-b389-4553-bbd2-cd54dc2eb752\" class=\"textannotation\">route<\/span>('posts.store') }}\" enctype=\"multipart\/form-<span id=\"urn:enhancement-7c314dc1-4ea0-47ea-863b-ae4bddb105e7\" class=\"textannotation\">data<\/span>\"&gt;\n      @csrf\n      &lt;!-- Error message when <span id=\"urn:enhancement-d0ead4c8-21ec-414a-9f24-e05ce02507f1\" class=\"textannotation\">data<\/span> is not inputted --&gt;\n      @if ($<span id=\"urn:enhancement-abb4b025-b3da-4b73-a51f-e0de17928c42\" class=\"textannotation\">errors<\/span>-&gt;any())\n        &lt;div class=\"alert alert-danger\"&gt;\n          &lt;ul&gt;\n            @foreach ($errors-&gt;all() as $error)\n              &lt;li&gt;{{ $error }}&lt;\/li&gt;\n            @endforeach\n          &lt;\/ul&gt;\n        &lt;\/div&gt;\n      @endif\n      &lt;div class=\"card p-3\"&gt;\n        &lt;label for=\"floatingInput\"&gt;Title&lt;\/label&gt;\n        &lt;input class=\"form-control\" type=\"text\" name=\"title\"&gt;\n        &lt;label for=\"floatingTextArea\"&gt;Description&lt;\/label&gt;\n        &lt;textarea class=\"form-control\" name=\"description\" id=\"floatingTextarea\" cols=\"30\" rows=\"10\"&gt;&lt;\/textarea&gt;\n        &lt;label for=\"formFile\" class=\"form-label\"&gt;Add Image&lt;\/label&gt;\n        &lt;img src=\"\" alt=\"\" class=\"img-blog\"&gt;\n        &lt;input class=\"form-control\" type=\"file\" name=\"image\"&gt;\n      &lt;\/div&gt;\n      &lt;button class=\"btn btn-secondary m-3\"&gt;Save&lt;\/button&gt;\n    &lt;\/form&gt;\n  &lt;\/section&gt;\n    \n&lt;\/div&gt;\n@endsection<\/code><\/pre>\n<p>Dans ce code, <strong>create.blade.php<\/strong> h\u00e9rite du contenu de <strong>app.blade.php<\/strong> dans le r\u00e9pertoire <strong>layouts<\/strong> \u00e0 l&rsquo;aide de <code>@extends('layouts.app')<\/code>. Ce contenu comprend un en-t\u00eate, une barre de navigation et un pied de page. Apr\u00e8s avoir ajout\u00e9 le texte <code>Add Post<\/code> dans la balise <code>h1<\/code>, vous avez cr\u00e9\u00e9 un formulaire avec la m\u00e9thode <code>post<\/code> qui contient l&rsquo;action <code>{{route('posts.store')}}<\/code>.<\/p>\n<p>Le code <code>enctype=\"multipart\/form-data\"<\/code> permet de t\u00e9l\u00e9verser des images et <code>csrf<\/code> prot\u00e8ge votre formulaire contre les attaques inter-sites. Ensuite, les messages d&rsquo;erreur affichent des entr\u00e9es de champ non valides et utilisent<code>field attributes<\/code> pour cr\u00e9er des libell\u00e9s et des entr\u00e9es pour le formulaire.<\/p>\n<ol start=\"2\">\n<li>Remplacez maintenant le code du fichier <strong>index.blade.php<\/strong> par le code ci-dessous pour afficher tous les articles du blog :<\/li>\n<\/ol>\n<pre><code class=\"language-php\">@extends('layouts.app')\n@section('content')\n&lt;div class=\"container\"&gt;\n  &lt;div class=\"titlebar\"&gt;\n    &lt;a class=\"btn btn-secondary float-end mt-3\" href=\"{{ route('posts.create') }}\" role=\"button\"&gt;Add Post&lt;\/a&gt;\n    &lt;h1&gt;Mini post list&lt;\/h1&gt;\n  &lt;\/div&gt;\n    \n  &lt;hr&gt;\n  &lt;!-- <span id=\"urn:enhancement-8ebbef12-7c90-4331-af37-56f24fdfeab3\" class=\"textannotation\">Message<\/span> if a post is posted successfully --&gt;\n  @if ($message = Session::get('success'))\n  &lt;div class=\"alert alert-success\"&gt;\n    &lt;p&gt;{{ $message }}&lt;\/p&gt;\n  &lt;\/div&gt;\n  @endif\n         @if (count($posts) &gt; 0)\n    @foreach ($posts as $post)\n      &lt;div class=\"row\"&gt;\n        &lt;div class=\"col-12\"&gt;\n          &lt;div class=\"row\"&gt;\n            &lt;div class=\"col-2\"&gt;\n              &lt;img class=\"img-fluid\" style=\"max-width:50%;\" src=\"{{ asset('images\/'.$post-&gt;image)}}\" alt=\"\"&gt;\n            &lt;\/div&gt;\n            &lt;div class=\"col-10\"&gt;\n              &lt;h4&gt;{{$post-&gt;title}}&lt;\/h4&gt;\n            &lt;\/div&gt;\n          &lt;\/div&gt;\n          &lt;p&gt;{{$post-&gt;description}}&lt;\/p&gt;\n          &lt;hr&gt;\n        &lt;\/div&gt;\n      &lt;\/div&gt;\n    @endforeach\n  @else\n    &lt;p&gt;No Posts found&lt;\/p&gt;\n  @endif\n&lt;\/div&gt;\n@endsection<\/code><\/pre>\n<p>Ce code ajoute un bouton <strong>Add Post<\/strong>. Lorsqu&rsquo;il est cliqu\u00e9, il cr\u00e9e un article et transmet les donn\u00e9es \u00e9ventuelles dans le corps de la page. La condition <code>if<\/code> v\u00e9rifie s&rsquo;il y a des donn\u00e9es dans la base de donn\u00e9es. Si c&rsquo;est le cas, elle passe. Dans le cas contraire, le message \u00ab No Posts found \u00bb s&rsquo;affiche.<\/p>\n<h3>Structurer vos pages<\/h3>\n<p>Vous pouvez maintenant ex\u00e9cuter votre application \u00e0 l&rsquo;aide de <code>php artisan serve<\/code> pour cr\u00e9er et afficher des articles de blog. Ouvrez <code>&lt;a href=\"http:\/\/127.0.0.1:8000\"&gt;http:\/\/127.0.0.1:8000&lt;\/a &gt;<\/code>, et la page devrait ressembler \u00e0 ceci :<\/p>\n<figure style=\"width: 1343px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/list-preview-no-posts.png\" alt=\"L'application de blog appara\u00eet dans le navigateur\" width=\"1343\" height=\"350\"><figcaption class=\"wp-caption-text\">L&rsquo;application de blog appara\u00eet dans le navigateur<\/figcaption><\/figure>\n<p>Si vous ajoutez un article, il apparait comme suit :<\/p>\n<figure style=\"width: 1359px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/preview-post.png\" alt=\"L'application blog affiche un article dans le navigateur\" width=\"1359\" height=\"641\"><figcaption class=\"wp-caption-text\">L&rsquo;application blog affiche un article dans le navigateur<\/figcaption><\/figure>\n<h2>D\u00e9ployer votre blog Laravel sur Kinsta<\/h2>\n<p>Pour d\u00e9ployer et tester votre application Laravel en utilisant le <a href=\"https:\/\/sevalla.com\/application-hosting\/\">service d&rsquo;h\u00e9bergement d&rsquo;applications de Kinsta<\/a>:<\/p>\n<ol start=\"1\">\n<li>Cr\u00e9ez un fichier <strong>.htaccess<\/strong>.<\/li>\n<li>Placez le code dans un d\u00e9p\u00f4t.<\/li>\n<li>Cr\u00e9ez une base de donn\u00e9es.<\/li>\n<li>Configurez un projet sur MyKinsta.<\/li>\n<li>Construire et d\u00e9ployer votre blog.<\/li>\n<\/ol>\n<h3>Cr\u00e9er un fichier .htaccess<\/h3>\n<p>Dans le dossier racine du projet, cr\u00e9ez un fichier appel\u00e9 <strong>.htaccess<\/strong> et ajoutez le code suivant :<\/p>\n<pre><code class=\"language-apacheconf\">&lt;IfModule mod_rewrite.c&gt;\n  RewriteEngine On\n  RewriteRule ^(.*)$ public\/$1 [L]\n&lt;\/IfModule&gt;<\/code><\/pre>\n<p>Ce code redirige les requ\u00eates de votre application vers <strong>public\/index.php<\/strong> dans le d\u00e9ploiement.<\/p>\n<h3>Transf\u00e9rer votre code dans un d\u00e9p\u00f4t<\/h3>\n<p>Cr\u00e9ez un d\u00e9p\u00f4t pour votre projet et publiez le code. Vous pouvez utiliser GitHub, GitLab ou Bitbucket pour h\u00e9berger votre code et le d\u00e9ployer sur <a href=\"https:\/\/my.kinsta.com\/login?lang=fr\">MyKinsta<\/a>.<\/p>\n<h3>Configurer la base de donn\u00e9es dans votre tableau de bord MyKinsta<\/h3>\n<p>Pour cr\u00e9er une base de donn\u00e9es sur MyKinsta :<\/p>\n<ol start=\"1\">\n<li>Cliquez sur le bouton <strong>Ajouter un service<\/strong> et s\u00e9lectionnez <strong>Base de donn\u00e9es<\/strong>.<\/li>\n<li>Saisissez les d\u00e9tails de votre base de donn\u00e9es comme indiqu\u00e9 ci-dessous. Notez que pour que votre d\u00e9ploiement soit r\u00e9ussi, vous devez laisser le <strong>nom d&rsquo;utilisateur de la base de donn\u00e9es<\/strong> comme valeur par d\u00e9faut.<\/li>\n<\/ol>\n<figure style=\"width: 1136px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/mykinsta-create-database.png\" alt=\"Cr\u00e9er une base de donn\u00e9es dans MyKinsta\" width=\"1136\" height=\"739\"><figcaption class=\"wp-caption-text\">Cr\u00e9er une base de donn\u00e9es dans MyKinsta<\/figcaption><\/figure>\n<p>Les d\u00e9tails incluent le <strong>nom de la base de donn\u00e9es<\/strong>, le <strong>nom d&rsquo;affichage<\/strong>, le <strong>type de base de donn\u00e9es<\/strong>,<strong> la<\/strong> <strong>version<\/strong>, le <strong>nom d&rsquo;utilisateur de la base<\/strong> de donn\u00e9es, l&rsquo;<strong>emplacement du centre de donn\u00e9es<\/strong> et la <strong>taille<\/strong>. Cette d\u00e9monstration utilise MariaDB pour la base de donn\u00e9es, et la <strong>taille<\/strong> est <strong>Db3 (1 CPU \/ 4Go de RAM \/ 10Go d&rsquo;espace disque 65 USD \/ mois)<\/strong>. Vous pouvez choisir le type et la taille de la base de donn\u00e9es qui correspondent \u00e0 vos besoins sp\u00e9cifiques.<\/p>\n<ol start=\"3\">\n<li>Cliquez sur <strong>Continuer<\/strong>.<\/li>\n<li>Confirmez votre co\u00fbt mensuel et votre mode de paiement, puis cliquez sur <strong>Cr\u00e9er une base de donn\u00e9es<\/strong>.<\/li>\n<\/ol>\n<h3>Configurer le projet sur MyKinsta<\/h3>\n<p>Pour d\u00e9ployer votre application sur MyKinsta :<\/p>\n<ol start=\"1\">\n<li>Cliquez sur le <strong>tableau de bord<\/strong>.<\/li>\n<li>Cliquez sur <strong>Ajouter un service<\/strong> et s\u00e9lectionnez <strong>Application<\/strong>, comme indiqu\u00e9 ci-dessous :<\/li>\n<\/ol>\n<figure style=\"width: 1399px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/mykinsta-create-app.png\" alt=\"Tableau de bord MyKinsta lors de l'ajout d'un service d'application\" width=\"1399\" height=\"493\"><figcaption class=\"wp-caption-text\">Tableau de bord MyKinsta lors de l&rsquo;ajout d&rsquo;un service d&rsquo;application<\/figcaption><\/figure>\n<p>MyKinsta vous redirige vers la page <strong>Ajouter une application<\/strong>.<\/p>\n<ol start=\"1\">\n<li>Dans la section <strong>S\u00e9lectionner une branche<\/strong>, s\u00e9lectionnez votre d\u00e9p\u00f4t GitHub, puis cochez la case <strong>Ajouter le d\u00e9ploiement sur le commit<\/strong>.<\/li>\n<li>Dans les <strong>d\u00e9tails de base<\/strong>, entrez le nom de l&rsquo;application et s\u00e9lectionnez l&#8217;emplacement du centre de donn\u00e9es pour votre application.<\/li>\n<li>Puisque Laravel a besoin d&rsquo;une cl\u00e9 d&rsquo;application pendant le d\u00e9ploiement, dans la carte <strong>Variables d&rsquo;environnement<\/strong>, ajoutez une <strong>cl\u00e9 APP_KEY<\/strong> comme cl\u00e9 1. Vous pouvez utiliser la cl\u00e9 <strong>APP_KEY<\/strong> d\u00e9finie dans votre fichier <strong>.env<\/strong> local ou utiliser un <a href=\"https:\/\/generate-random.org\/laravel-key-generator?count=1\">g\u00e9n\u00e9rateur de cl\u00e9 Laravel en ligne<\/a> pour en obtenir une.<\/li>\n<li>Cliquez sur <strong>Continuer<\/strong>.<\/li>\n<li>S\u00e9lectionnez les ressources de construction (CPU et RAM) pour votre application. Cette d\u00e9monstration utilise la <strong>machine de construction standard (1 CPU \/ 4 Go de RAM) &#8211; 0.02 USD \/ minute<\/strong>.<\/li>\n<li>Ne d\u00e9cochez pas le bouton radio <strong>Configurer automatiquement l&rsquo;image du conteneur<\/strong>.<\/li>\n<li>Cliquez sur <strong>Continuer<\/strong>.<\/li>\n<li>Dans la page <strong>Configurer vos processus<\/strong>, vous pouvez modifier la taille du pod et l&rsquo;instance de votre application en cochant ces cases. Cette d\u00e9monstration utilise les valeurs par d\u00e9faut.<\/li>\n<li>Cliquez sur <strong>Continuer<\/strong>.<\/li>\n<li>Enfin, cliquez sur le bouton <strong>Confirmer le moyen de paiement<\/strong> pour lancer le d\u00e9ploiement de votre application. En cliquant sur ce bouton, vous acc\u00e9dez \u00e9galement \u00e0 la page <strong>D\u00e9tails du d\u00e9ploiement<\/strong> pour voir l&rsquo;\u00e9tat d&rsquo;avancement de votre d\u00e9ploiement.<\/li>\n<\/ol>\n<h3>Construire et d\u00e9ployer votre application<\/h3>\n<p>Une fois la base de donn\u00e9es et l&rsquo;application h\u00e9berg\u00e9es, connectez la base de donn\u00e9es \u00e0 votre application et cr\u00e9ez-la pour la d\u00e9ployer.<\/p>\n<p>Pour connecter la base de donn\u00e9es, utilisez les connexions externes de votre base de donn\u00e9es h\u00e9berg\u00e9e. Dans l&rsquo;onglet <strong>Info <\/strong>de votre base de donn\u00e9es h\u00e9berg\u00e9e, vous voyez <strong>Connexions externes<\/strong>, comme indiqu\u00e9 ci-dessous :<\/p>\n<figure style=\"width: 1120px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/mykinsta-db-external-connections.png\" alt=\"Connexions externes de votre base de donn\u00e9es h\u00e9berg\u00e9e\" width=\"1120\" height=\"498\"><figcaption class=\"wp-caption-text\">Connexions externes de votre base de donn\u00e9es h\u00e9berg\u00e9e<\/figcaption><\/figure>\n<ol start=\"1\">\n<li>Sur la page <strong>R\u00e9glages <\/strong>de l&rsquo;application d\u00e9ploy\u00e9e, acc\u00e9dez \u00e0 la carte<strong> Variable d&rsquo;environnement<\/strong>.<\/li>\n<li>Cliquez sur <strong>Ajouter une variable d&rsquo;environnement<\/strong> pour ajouter les connexions externes de votre base de donn\u00e9es h\u00e9berg\u00e9e avec la valeur correspondante. Utilisez les m\u00eames variables que vous avez dans votre fichier <strong>.env.<\/strong><\/li>\n<\/ol>\n<figure style=\"width: 1107px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/07\/mykinsta-app-env-variables.png\" alt=\"Les variables d'environnement pour votre base de donn\u00e9es h\u00e9berg\u00e9e\" width=\"1107\" height=\"700\"><figcaption class=\"wp-caption-text\">Les variables d&rsquo;environnement pour votre base de donn\u00e9es h\u00e9berg\u00e9e<\/figcaption><\/figure>\n<p>Cette capture d&rsquo;\u00e9cran est pratique si vous envisagez de marquer les variables <code>env<\/code> que vous avez modifi\u00e9es manuellement pour les diff\u00e9rencier des autres.<\/p>\n<p><strong>APP_URL <\/strong>est l&rsquo;URL de votre application h\u00e9berg\u00e9e, et <strong>DB_CONNECTION<\/strong> est <code>mysql<\/code>.<\/p>\n<ol start=\"1\">\n<li>Rendez-vous sur la page <strong>R\u00e9glages<\/strong> de votre application.<\/li>\n<li>Dans la carte <strong>Buildpack<\/strong>, ajoutez PHP et Node.js comme build packs. Comme il s&rsquo;agit d&rsquo;une application PHP, vous devez ajouter le build pack PHP en dernier.<\/li>\n<li>Cliquez sur <strong>D\u00e9ployer maintenant<\/strong> pour reconstruire votre application.<\/li>\n<\/ol>\n<p>Ensuite, ajoutez un processus qui migrera la base de donn\u00e9es.<\/p>\n<ol start=\"1\">\n<li>Allez dans l&rsquo;onglet <strong>Processus <\/strong>sur la page de votre application h\u00e9berg\u00e9e.<\/li>\n<li>S\u00e9lectionnez <strong>Cr\u00e9er un processus<\/strong> sur la carte <strong>Processus d&rsquo;ex\u00e9cution<\/strong>.<\/li>\n<li>Saisissez <strong>Migration<\/strong> comme nom, <strong>Worker en arri\u00e8re-plan<\/strong> comme type et <code>php artisan migrate --force<\/code> comme commande de d\u00e9marrage. Vous pouvez laisser les valeurs par d\u00e9faut pour la taille du pod et les instances.<\/li>\n<li>S\u00e9lectionnez <strong>Continuer <\/strong>pour cr\u00e9er le processus. Cette action d\u00e9clenche une nouvelle compilation et red\u00e9ploie l&rsquo;application.<\/li>\n<li>Dans l&rsquo;onglet <strong>Domaines <\/strong>de votre application, cliquez sur le lien de votre application. Vous pouvez voir qu&rsquo;elle est maintenant op\u00e9rationnelle.<\/li>\n<li>Notez que l&rsquo;application de blog d\u00e9ploy\u00e9e sur MyKinsta n&rsquo;affiche aucun article. Cr\u00e9ez un nouvel article en saisissant son titre, en ajoutant une description et en choisissant une image.<\/li>\n<\/ol>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Laravel permet de d\u00e9velopper rapidement un blog simple. Son chargement rapide des pages, son architecture de contr\u00f4leur robuste et sa s\u00e9curit\u00e9 comp\u00e9tente permettent d&rsquo;am\u00e9liorer facilement les performances d&rsquo;une application. Parall\u00e8lement, MyKinsta vous permet de publier et de livrer vos applications web rapidement et efficacement. Le mod\u00e8le de tarification flexible de MyKinsta est bas\u00e9 sur l&rsquo;utilisation, ce qui \u00e9limine les co\u00fbts cach\u00e9s.<\/p>\n<p>Lorsque Kinsta h\u00e9berge votre application Laravel, elle s&rsquo;ex\u00e9cute sur la <a href=\"https:\/\/kinsta.com\/fr\/blog\/plateforme-cloud-pour-developpeurs\/\">Google Cloud Platform sur leur Premium Tier<\/a>, ce qui la rend aussi rapide que possible. Kinsta inclut \u00e9galement une protection et une att\u00e9nuation DDoS de niveau entreprise avec Cloudflare et des pare-feu avanc\u00e9s pour tenir les acteurs malveillants \u00e0 distance, et bien plus encore.<\/p>\n<p>Commencez d\u00e8s maintenant votre <a href=\"https:\/\/kinsta.com\/fr\/inscription\/?product_type=app-db\">essai gratuit<\/a> d&rsquo;h\u00e9bergement d&rsquo;applications pour rationaliser le d\u00e9veloppement et l&rsquo;h\u00e9bergement de vos applications web !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel est un framework d&rsquo;application web PHP dot\u00e9 d&rsquo;une syntaxe expressive et \u00e9l\u00e9gante. Il dispose d&rsquo;une vaste biblioth\u00e8que de paquets et prend en charge une grande &#8230;<\/p>\n","protected":false},"author":290,"featured_media":71706,"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-71705","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>Comment cr\u00e9er un blog dans Laravel - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Ce guide vous accompagne pas \u00e0 pas tout au long du processus de construction d&#039;un blog \u00e0 l&#039;aide de Laravel et de son obtention en ligne avec Kinsta.\" \/>\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\/blog-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment cr\u00e9er un blog dans Laravel\" \/>\n<meta property=\"og:description\" content=\"Ce guide vous accompagne pas \u00e0 pas tout au long du processus de construction d&#039;un blog \u00e0 l&#039;aide de Laravel et de son obtention en ligne avec Kinsta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/\" \/>\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-08-04T07:24:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-12T12:34:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"author\" content=\"Marcia Ramos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Ce guide vous accompagne pas \u00e0 pas tout au long du processus de construction d&#039;un blog \u00e0 l&#039;aide de Laravel et de son obtention en ligne avec Kinsta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg\" \/>\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=\"Marcia Ramos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/\"},\"author\":{\"name\":\"Marcia Ramos\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116\"},\"headline\":\"Comment cr\u00e9er un blog dans Laravel\",\"datePublished\":\"2023-08-04T07:24:55+00:00\",\"dateModified\":\"2023-10-12T12:34:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/\"},\"wordCount\":3251,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/\",\"name\":\"Comment cr\u00e9er un blog dans Laravel - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg\",\"datePublished\":\"2023-08-04T07:24:55+00:00\",\"dateModified\":\"2023-10-12T12:34:00+00:00\",\"description\":\"Ce guide vous accompagne pas \u00e0 pas tout au long du processus de construction d'un blog \u00e0 l'aide de Laravel et de son obtention en ligne avec Kinsta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#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\":\"Comment cr\u00e9er un blog dans Laravel\"}]},{\"@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\/72bff0015d3fb3ba3d8a85494dc0b116\",\"name\":\"Marcia Ramos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g\",\"caption\":\"Marcia Ramos\"},\"description\":\"I'm the Editorial Team Lead at Kinsta. I'm a open source enthusiast and I love coding. With more than 10 years of technical writing and editing for the tech industry, I love collaborating with people to create clear and concise pieces of content and improve workflows.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/marciadiasramos\/\"],\"honorificSuffix\":\"B.Sc.\",\"gender\":\"Female\",\"knowsLanguage\":[\"English\",\"Portuguese\"],\"jobTitle\":\"Editorial Team Lead\",\"worksFor\":\"Kinsta Inc.\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/marciaramos\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment cr\u00e9er un blog dans Laravel - Kinsta\u00ae","description":"Ce guide vous accompagne pas \u00e0 pas tout au long du processus de construction d'un blog \u00e0 l'aide de Laravel et de son obtention en ligne avec Kinsta.","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\/blog-laravel\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment cr\u00e9er un blog dans Laravel","og_description":"Ce guide vous accompagne pas \u00e0 pas tout au long du processus de construction d'un blog \u00e0 l'aide de Laravel et de son obtention en ligne avec Kinsta.","og_url":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-08-04T07:24:55+00:00","article_modified_time":"2023-10-12T12:34:00+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg","type":"image\/jpeg"}],"author":"Marcia Ramos","twitter_card":"summary_large_image","twitter_description":"Ce guide vous accompagne pas \u00e0 pas tout au long du processus de construction d'un blog \u00e0 l'aide de Laravel et de son obtention en ligne avec Kinsta.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Marcia Ramos","Dur\u00e9e de lecture estim\u00e9e":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/"},"author":{"name":"Marcia Ramos","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/72bff0015d3fb3ba3d8a85494dc0b116"},"headline":"Comment cr\u00e9er un blog dans Laravel","datePublished":"2023-08-04T07:24:55+00:00","dateModified":"2023-10-12T12:34:00+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/"},"wordCount":3251,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/","url":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/","name":"Comment cr\u00e9er un blog dans Laravel - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg","datePublished":"2023-08-04T07:24:55+00:00","dateModified":"2023-10-12T12:34:00+00:00","description":"Ce guide vous accompagne pas \u00e0 pas tout au long du processus de construction d'un blog \u00e0 l'aide de Laravel et de son obtention en ligne avec Kinsta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/laravel-blog.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/blog-laravel\/#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":"Comment cr\u00e9er un blog dans Laravel"}]},{"@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\/72bff0015d3fb3ba3d8a85494dc0b116","name":"Marcia Ramos","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d680db24858fdf61a7e7ce3c1a160f5?s=96&d=mm&r=g","caption":"Marcia Ramos"},"description":"I'm the Editorial Team Lead at Kinsta. I'm a open source enthusiast and I love coding. With more than 10 years of technical writing and editing for the tech industry, I love collaborating with people to create clear and concise pieces of content and improve workflows.","sameAs":["https:\/\/www.linkedin.com\/in\/marciadiasramos\/"],"honorificSuffix":"B.Sc.","gender":"Female","knowsLanguage":["English","Portuguese"],"jobTitle":"Editorial Team Lead","worksFor":"Kinsta Inc.","url":"https:\/\/kinsta.com\/fr\/blog\/author\/marciaramos\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/71705","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\/290"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=71705"}],"version-history":[{"count":10,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/71705\/revisions"}],"predecessor-version":[{"id":71736,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/71705\/revisions\/71736"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/translations\/es"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/71705\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/71706"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=71705"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=71705"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=71705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}