{"id":68821,"date":"2023-05-05T11:18:11","date_gmt":"2023-05-05T10:18:11","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=68821&#038;preview=true&#038;preview_id=68821"},"modified":"2023-11-03T03:59:28","modified_gmt":"2023-11-03T02:59:28","slug":"laravel-model-factories","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/","title":{"rendered":"Comment g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories"},"content":{"rendered":"<p>Les tests sont essentiels au <a href=\"https:\/\/kinsta.com\/web-development\/\">d\u00e9veloppement web<\/a>. Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d&rsquo;une mani\u00e8re pr\u00e9visible et facilement reproductible afin que les tests de votre application soient coh\u00e9rents et contr\u00f4l\u00e9s. Les usines de mod\u00e8les d\u00e9finissent un ensemble d&rsquo;attributs par d\u00e9faut pour chacun de vos mod\u00e8les Eloquent.<\/p>\n<p>Par exemple, si vous cr\u00e9ez une application de blog permettant aux auteurs et aux mod\u00e9rateurs d&rsquo;approuver les commentaires avant qu&rsquo;ils ne soient mis en ligne, vous devrez tester si la fonction fonctionne correctement avant de la d\u00e9ployer aupr\u00e8s de vos utilisateurs. Tout cela n\u00e9cessite des donn\u00e9es de test.<\/p>\n<p>Pour tester l&rsquo;application de blog d\u00e9crite ci-dessus, vous avez besoin de donn\u00e9es de commentaires pour imiter et tester la fonctionnalit\u00e9 de votre application. <a href=\"https:\/\/kinsta.com\/fr\/blog\/laravel-10\/\">Laravel<\/a> vous permet de le faire sans obtenir les commentaires des utilisateurs r\u00e9els en utilisant les usines Laravel et Faker pour g\u00e9n\u00e9rer de fausses donn\u00e9es.<\/p>\n<p>Cet article explique comment obtenir des donn\u00e9es de commentaires sans les commentaires d&rsquo;utilisateurs r\u00e9els.<\/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>Conditions pr\u00e9alables<\/h2>\n<p>Pour compl\u00e9ter ce tutoriel, vous devez \u00eatre familier avec les \u00e9l\u00e9ments suivants :<\/p>\n<ul>\n<li>XAMPP<\/li>\n<li>Composer<\/li>\n<\/ul>\n<p><a href=\"https:\/\/kinsta.com\/fr\/sujets\/xampp\/\">XAMPP<\/a> est une distribution Apache gratuite et facile \u00e0 installer qui contient PHP, Perl et MariaDB &#8211; une base de donn\u00e9es MySQL. Ce tutoriel utilise la derni\u00e8re version, 8.1.10, qui installe PHP 8.1.10. Lisez <a href=\"https:\/\/medium.com\/analytics-vidhya\/download-and-install-xampp-on-mac-oshow-to-download-and-install-xampp-on-mac-os-97705974080d\" target=\"_blank\" rel=\"noopener noreferrer\">cet article<\/a> si vous installez XAMPP pour MacOS ou <a href=\"https:\/\/ostechnix.com\/install-xampp-in-linux\/\" target=\"_blank\" rel=\"noopener noreferrer\">ce guide<\/a> pour Linux. Ce tutoriel utilise XAMPP sur Windows.<\/p>\n<p>Composer est un outil qui vous permet de d\u00e9finir, d&rsquo;installer et de t\u00e9l\u00e9charger les paquets dont d\u00e9pend votre application web en d\u00e9veloppement et en production. Ce tutoriel utilise la <a href=\"https:\/\/getcomposer.org\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">version v2.4.4<\/a> de Composer, qui n\u00e9cessite <a href=\"https:\/\/kinsta.com\/fr\/blog\/comparaison-php\/\">PHP version 7.2+.<\/a> Vous utilisez Composer pour installer le programme d&rsquo;installation de Laravel pour ce tutoriel.<\/p>\n<p>Vous pouvez \u00e9galement t\u00e9l\u00e9charger le code complet du projet pour le <a href=\"https:\/\/github.com\/multi-Adams\/laravel-factories-article\" target=\"_blank\" rel=\"noopener noreferrer\">suivre<\/a>.<\/p>\n\n<h2>Comment configurer le projet<\/h2>\n<p>Dans cette section, vous allez cr\u00e9er un projet Laravel et le connecter \u00e0 une base de donn\u00e9es. Voyons ce que cela implique et comment y parvenir.<\/p>\n<h3>Installez le programme d&rsquo;installation de Laravel<\/h3>\n<p>Pour cr\u00e9er rapidement un projet Laravel, installez le programme d&rsquo;installation de Laravel :<\/p>\n<pre><code class=\"language-sh\">composer global require laravel\/installer<\/code><\/pre>\n<p>Ce code installe le programme d&rsquo;installation de Laravel globalement sur votre machine.<\/p>\n<h3>Cr\u00e9ez un projet Laravel<\/h3>\n<p>Ensuite, <a href=\"https:\/\/docs.sevalla.com\/templates\/overview#laravel\">cr\u00e9ez un projet Laravel<\/a> en ex\u00e9cutant ce qui suit :<\/p>\n<pre><code class=\"language-sh\">laravel new app-name<\/code><\/pre>\n<p>Ce code d\u00e9marre un nouveau projet Laravel et installe toutes les d\u00e9pendances :<\/p>\n<figure style=\"width: 978px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/creating-laravel-project.png\" alt=\"Cr\u00e9ation du projet Laravel\" width=\"978\" height=\"510\"><figcaption class=\"wp-caption-text\">Cr\u00e9ation du projet Laravel<\/figcaption><\/figure>\n<p>Une autre fa\u00e7on plus simple d&rsquo;installer Laravel est d&rsquo;utiliser Composer directement.<\/p>\n<pre><code class=\"language-sh\">composer create-project laravel\/laravel app-name<\/code><\/pre>\n<p>Vous n&rsquo;avez pas besoin d&rsquo;installer le programme d&rsquo;installation de Laravel lorsque vous utilisez la m\u00e9thode ci-dessus.<\/p>\n<h3>D\u00e9marrez l&rsquo;application<\/h3>\n<p>Vous pouvez maintenant changer le r\u00e9pertoire en <strong>app-name<\/strong> et d\u00e9marrer le projet en utilisant l&rsquo;outil d&rsquo;interface de ligne de commande (CLI) de Laravel, <a href=\"https:\/\/laravel.com\/docs\/9.x\/artisan#introduction\" target=\"_blank\" rel=\"noopener noreferrer\">Artisan<\/a>:<\/p>\n<pre><code class=\"language-sh\">php artisan serve<\/code><\/pre>\n<p>Ce code d\u00e9marre le projet et le connecte \u00e0 localhost:8000 ou \u00e0 tout autre port disponible si le port 8000 est utilis\u00e9. Sur localhost:8000, vous devriez voir quelque chose comme ceci :<\/p>\n<figure style=\"width: 771px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/laravel-website-homepage.png\" alt=\"Laravel\" width=\"771\" height=\"626\"><figcaption class=\"wp-caption-text\">Laravel<\/figcaption><\/figure>\n<h3>Cr\u00e9ez une base de donn\u00e9es<\/h3>\n<p>Pour connecter votre application \u00e0 une base de donn\u00e9es, vous devez cr\u00e9er une nouvelle base de donn\u00e9es en utilisant l&rsquo;interface graphique PHPMyAdmin de XAMPP. Allez \u00e0 <strong>localhost\/phpmyadmin<\/strong> et cliquez sur <strong>Nouveau<\/strong> dans la colonne lat\u00e9rale :<\/p>\n<figure style=\"width: 560px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/create-database-form.png\" alt=\"Cr\u00e9er un formulaire de base de donn\u00e9es\" width=\"560\" height=\"144\"><figcaption class=\"wp-caption-text\">Cr\u00e9er un formulaire de base de donn\u00e9es<\/figcaption><\/figure>\n<p>L&rsquo;image ci-dessus montre le formulaire de <strong>cr\u00e9ation de base de donn\u00e9es<\/strong> avec <strong>app_name<\/strong> comme nom de base de donn\u00e9es.<\/p>\n<p>Cliquez sur <strong>Cr\u00e9er<\/strong> pour cr\u00e9er une base de donn\u00e9es.<\/p>\n<h3>Modifiez le fichier .env<\/h3>\n<p>Pour connecter votre application \u00e0 une base de donn\u00e9es, vous devez \u00e9diter la partie DB du fichier <strong>.env<\/strong>:<\/p>\n<pre><code class=\"language-env\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=app_name\nDB_USERNAME=root\nDB_PASSWORD=<\/code><\/pre>\n<p>Ce code remplit les informations d&rsquo;identification de la base de donn\u00e9es avec le nom de la base de donn\u00e9es, le nom d&rsquo;utilisateur, le port, le mot de passe et l&rsquo;h\u00f4te. Vous \u00eates maintenant pr\u00eat \u00e0 cr\u00e9er des usines et des mod\u00e8les.<\/p>\n<p><strong>Remarque :<\/strong> remplacez les valeurs par vos identifiants de base de donn\u00e9es. De plus, si vous rencontrez l&rsquo;erreur \u00ab Acc\u00e8s refus\u00e9 pour l&rsquo;utilisateur \u00bb, mettez les valeurs de <code>DB_USERNAME<\/code> et <code>DB_PASSWORD<\/code> entre guillemets.<\/p>\n<h2>Comment g\u00e9n\u00e9rer de fausses donn\u00e9es<\/h2>\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 l&rsquo;application et l&rsquo;avoir connect\u00e9e \u00e0 la base de donn\u00e9es, vous pouvez maintenant cr\u00e9er les fichiers n\u00e9cessaires pour g\u00e9n\u00e9rer de fausses donn\u00e9es dans la base de donn\u00e9es.<\/p>\n<h3>Cr\u00e9ez le mod\u00e8le de commentaire<\/h3>\n<p>Cr\u00e9ez le fichier mod\u00e8le pour interagir avec les tables de la base de donn\u00e9es. Pour cr\u00e9er un mod\u00e8le, utilisez Artisan :<\/p>\n<pre><code class=\"language-sh\">php artisan make:model Comment<\/code><\/pre>\n<p>Ce code cr\u00e9e un fichier <strong>Comment.php<\/strong> dans le dossier <strong>app\/Models<\/strong> avec du code de base. Ajoutez le code suivant sous la ligne <code>use HasFactory;<\/code>:<\/p>\n<pre><code class=\"language-php\"> protected $fillable = [\n      'name',\n      'email',\n      'body',\n      'approved',\n      'likes'\n    ];<\/code><\/pre>\n<p>Ce code \u00e9num\u00e8re les champs pour lesquels vous souhaitez autoriser les affectations en masse, car Laravel prot\u00e8ge par d\u00e9faut votre base de donn\u00e9es contre les affectations en masse. Le fichier de mod\u00e8le <strong>Commentaire<\/strong> devrait maintenant ressembler \u00e0 ceci :<\/p>\n<figure style=\"width: 1492px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/carbon.png\" alt=\"Fichier de mod\u00e8le de commentaire\" width=\"1492\" height=\"858\"><figcaption class=\"wp-caption-text\">Fichier de mod\u00e8le de commentaire<\/figcaption><\/figure>\n<h3>Cr\u00e9ez le fichier de migration<\/h3>\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 le fichier mod\u00e8le et d\u00e9clar\u00e9 le tableau <code>$fillable<\/code>, vous devez cr\u00e9er le fichier de migration \u00e0 l&rsquo;aide de la commande ci-dessous :<\/p>\n<pre><code class=\"language-sh\">php artisan make:migration create_comments_table<\/code><\/pre>\n<p><strong>Note :<\/strong> La convention de nommage pour la cr\u00e9ation de migrations dans Laravel est habituellement <code><a href=\"https:\/\/en.wikipedia.org\/wiki\/Snake_case\" target=\"_blank\" rel=\"noopener noreferrer\">snake_case<\/a><\/code>\u00e9galement connue sous le nom de <code>underscore_case<\/code>. Le premier mot est l&rsquo;action, le deuxi\u00e8me est un pluriel du mod\u00e8le, et le dernier est la fonctionnalit\u00e9 qui est cr\u00e9\u00e9e \u00e0 l&rsquo;int\u00e9rieur du projet. Cela signifie que vous \u00e9crirez <code>create_books_table<\/code> lorsque vous cr\u00e9erez une migration pour un mod\u00e8le Book.<\/p>\n<p>Ce code cr\u00e9e un fichier nomm\u00e9 <strong>yyyy_mm_dd_hhmmss_create_comments_table<\/strong> dans le dossier <strong>database\/migrations<\/strong>.<\/p>\n<p>Ensuite, modifiez la fonction up dans <strong>yyyy_mm_dd_hhmmss_create_comments_table<\/strong>:<\/p>\n<pre><code class=\"language-php\">public function up()\n    {\n  Schema::create('comments', function (Blueprint $table) {\n    $table-&gt;id();\n    $table-&gt;string('name');\n    $table-&gt;string('email');\n    $table-&gt;longText('body');\n    $table-&gt;boolean('approved');\n    $table-&gt;integer('likes')-&gt;default(0);\n    $table-&gt;timestamps();\n    });\n    }<\/code><\/pre>\n<p>Ce code cr\u00e9e un sch\u00e9ma qui cr\u00e9e une table avec les colonnes : <code>id<\/code>, <code>name<\/code>, <code>email<\/code>, <code>body<\/code>, <code>approved<\/code>, <code>likes<\/code>, et <code>timestamps<\/code>.<\/p>\n<h3>Ex\u00e9cutez les migrations<\/h3>\n<p>La cr\u00e9ation et l&rsquo;\u00e9dition du fichier de migration ne feront rien tant que vous ne les ex\u00e9cuterez pas \u00e0 l&rsquo;aide de la ligne de commande. Si vous regardez le gestionnaire de base de donn\u00e9es, il est toujours vide.<\/p>\n<p>Ex\u00e9cutez les migrations \u00e0 l&rsquo;aide d&rsquo;Artisan :<\/p>\n<pre><code class=\"language-sh\">php artisan migrate<\/code><\/pre>\n<p>Cette commande ex\u00e9cute toutes les migrations dans <strong>database\/migrations<\/strong> car c&rsquo;est la premi\u00e8re migration depuis la cr\u00e9ation de l&rsquo;application :<\/p>\n<figure style=\"width: 980px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/successful-migrations.png\" alt=\"Migrations r\u00e9ussies\" width=\"980\" height=\"511\"><figcaption class=\"wp-caption-text\">Migrations r\u00e9ussies<\/figcaption><\/figure>\n<p>L&rsquo;image suivante montre tous les fichiers de migration que vous avez ex\u00e9cut\u00e9s. Chacun repr\u00e9sente une table de la base de donn\u00e9es :<\/p>\n<figure style=\"width: 1064px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/database-after-migrations.png\" alt=\"Base de donn\u00e9es apr\u00e8s les migrations\" width=\"1064\" height=\"247\"><figcaption class=\"wp-caption-text\">Base de donn\u00e9es apr\u00e8s les migrations<\/figcaption><\/figure>\n<h3>Cr\u00e9ez le fichier CommentFactory<\/h3>\n<p>Cr\u00e9ez un fichier factory contenant votre fonction de d\u00e9finition. Pour cette d\u00e9monstration, vous cr\u00e9erez une fabrique \u00e0 l&rsquo;aide d&rsquo;Artisan :<\/p>\n<pre><code class=\"language-sh\">php artisan make:factory CommentFactory.php<\/code><\/pre>\n<p>Ce code cr\u00e9e un fichier <strong>CommentFactory<\/strong><strong>.php<\/strong> dans le dossier <strong>database\/factories<\/strong>.<\/p>\n<h3>La fonction de d\u00e9finition<\/h3>\n<p>La fonction \u00e0 l&rsquo;int\u00e9rieur de <strong>CommentFactory<\/strong> d\u00e9finit comment <a href=\"https:\/\/fakerphp.github.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Faker<\/a> g\u00e9n\u00e8re de fausses donn\u00e9es. Modifiez-la pour qu&rsquo;elle ressemble \u00e0 ceci :<\/p>\n<pre><code class=\"language-php\">public function definition()\n  {\n   return [\n     'name' =&gt; $this-&gt;faker-&gt;name(),\n     'email' =&gt; $this-&gt;faker-&gt;email(),\n     'body' =&gt; $this-&gt;faker-&gt;sentence(45),\n     'approved' =&gt; $this-&gt;faker-&gt;boolean(),\n     'likes' =&gt; $this-&gt;faker-&gt;randomNumber(5)\n     ];\n    }<\/code><\/pre>\n<p>Ce code indique \u00e0 Faker de g\u00e9n\u00e9rer ce qui suit :<\/p>\n<ul>\n<li>Un nom<\/li>\n<li>Une adresse e-mail<\/li>\n<li>Un paragraphe contenant 45 phrases<\/li>\n<li>Une valeur approuv\u00e9e qui ne peut \u00eatre que vraie ou fausse<\/li>\n<li>Un nombre al\u00e9atoire entre 0 et 9999<\/li>\n<\/ul>\n<h3>Reliez le mod\u00e8le de commentaire \u00e0 CommentFactory<\/h3>\n<p>Reliez le mod\u00e8le <code>Comment<\/code> \u00e0 <code>CommentFactory<\/code> en d\u00e9clarant une variable <code>$model<\/code> prot\u00e9g\u00e9e au-dessus de la d\u00e9finition :<\/p>\n<pre><code class=\"language-php\">protected $model = Comment::class;<\/code><\/pre>\n<p>Ajoutez \u00e9galement <code>use AppModelsComment;<\/code> aux d\u00e9pendances du fichier. Le fichier <strong>CommentFactory<\/strong> devrait maintenant ressembler \u00e0 ceci :<\/p>\n<figure style=\"width: 1492px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/comment-factory-file.png\" alt=\"Le fichier CommentFactory\" width=\"1492\" height=\"1268\"><figcaption class=\"wp-caption-text\">Le fichier CommentFactory<\/figcaption><\/figure>\n<h2>Comment alimenter la base de donn\u00e9es<\/h2>\n<p>En programmation, l&rsquo;ensemencement consiste \u00e0 g\u00e9n\u00e9rer de fausses donn\u00e9es al\u00e9atoires pour une base de donn\u00e9es \u00e0 des fins de test.<\/p>\n<p>Maintenant que vous avez cr\u00e9\u00e9 le mod\u00e8le, ex\u00e9cut\u00e9 les migrations et cr\u00e9\u00e9 la d\u00e9finition dans CommentFactory, ex\u00e9cutez le seeder \u00e0 l&rsquo;aide du fichier <strong>DatabaseSeeder<\/strong>.<\/p>\n<h3>Cr\u00e9ation du fichier CommentSeeder<\/h3>\n<p>Cr\u00e9ez un fichier <strong>seeder<\/strong> qui utilise la factory pour g\u00e9n\u00e9rer les donn\u00e9es :<\/p>\n<pre><code class=\"language-sh\">php artisan make:seeder CommentSeeder.php<\/code><\/pre>\n<p>Ce code cr\u00e9e un fichier <strong>CommentSeeder<\/strong><strong>.php<\/strong> dans le dossier <strong>database\/seeders<\/strong>.<\/p>\n<h3>Modifiez la fonction Run<\/h3>\n<p>Connectez le mod\u00e8le Comment \u00e0 CommentSeeder. Ajoutez le code suivant dans la fonction Run :<\/p>\n<pre><code class=\"language-php\">Comment::factory()-&gt;count(50)-&gt;create();<\/code><\/pre>\n<p>Ce code indique \u00e0 CommentSeeder d&rsquo;utiliser le mod\u00e8le Comment et la fonction de d\u00e9finition de CommentFactory pour g\u00e9n\u00e9rer 50 commentaires dans la base de donn\u00e9es. Ajoutez \u00e9galement le site <code>use AppModelsComment;<\/code> aux d\u00e9pendances du fichier. Le fichier <strong>CommentSeeder<\/strong> doit maintenant ressembler \u00e0 ceci :<\/p>\n<figure style=\"width: 1492px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/comment-seeder-file.png\" alt=\"Fichier CommentSeeder\" width=\"1492\" height=\"896\"><figcaption class=\"wp-caption-text\">Fichier CommentSeeder<\/figcaption><\/figure>\n<p><strong>Remarque :<\/strong> vous pouvez configurer Faker pour qu&rsquo;il cr\u00e9e des donn\u00e9es locales. Par exemple, vous pouvez le configurer pour qu&rsquo;il g\u00e9n\u00e8re des noms italiens au lieu de noms al\u00e9atoires en d\u00e9finissant <code>faker_locale<\/code> dans le fichier <strong>app\/config.php<\/strong> sur <code>it_IT<\/code>. Vous pouvez en savoir plus sur les Locales de Faker dans ce <a href=\"https:\/\/fakerphp.github.io\/locales\/it_IT\/\" target=\"_blank\" rel=\"noopener noreferrer\">guide<\/a>.<\/p>\n<h3>Ex\u00e9cutez le seeder<\/h3>\n<p>Ensuite, ex\u00e9cutez le fichier <strong>seeder<\/strong> avec Artisan :<\/p>\n<pre><code class=\"language-sh\">php artisan db:seed --class=CommentSeeder<\/code><\/pre>\n<p>Ce code ex\u00e9cute le fichier <strong>seeder<\/strong> et g\u00e9n\u00e8re 50 lignes de fausses donn\u00e9es dans la base de donn\u00e9es.<\/p>\n<figure style=\"width: 977px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/database-seed-successful.png\" alt=\"L'ensemencement de la base de donn\u00e9es a r\u00e9ussi\" width=\"977\" height=\"164\"><figcaption class=\"wp-caption-text\">L&rsquo;ensemencement de la base de donn\u00e9es a r\u00e9ussi<\/figcaption><\/figure>\n<p>La base de donn\u00e9es devrait maintenant contenir 50 lignes de donn\u00e9es fictives que vous pouvez utiliser pour tester les fonctions de votre application :<\/p>\n<figure style=\"width: 1340px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/database-rows.png\" alt=\"50 lignes de donn\u00e9es dans la base de donn\u00e9es\" width=\"1340\" height=\"787\"><figcaption class=\"wp-caption-text\">50 lignes de donn\u00e9es dans la base de donn\u00e9es<\/figcaption><\/figure>\n<h2>Comment r\u00e9initialiser la base de donn\u00e9es<\/h2>\n<p>Lorsque vous utilisez les donn\u00e9es g\u00e9n\u00e9r\u00e9es pour les tests, r\u00e9initialisez la base de donn\u00e9es chaque fois que vous ex\u00e9cutez un test. Supposons que vous souhaitiez tester la fonction de basculement des commentaires approuv\u00e9s. Actualisez la base de donn\u00e9es apr\u00e8s chaque test pour vous assurer que les donn\u00e9es g\u00e9n\u00e9r\u00e9es pr\u00e9c\u00e9demment n&rsquo;interf\u00e9reront pas avec les tests futurs.<\/p>\n<h3>Utilisez RefreshDatabase<\/h3>\n<p>Rafra\u00eechissez la base de donn\u00e9es \u00e0 l&rsquo;aide du trait <code>RefreshDatabase<\/code> dans le fichier de <strong>test<\/strong>.<\/p>\n<p>Naviguez vers <strong>ExampleTest.php<\/strong> dans le dossier <strong>tests\/Feature<\/strong> jusqu&rsquo;au commentaire <code>use IlluminateFoundationTestingRefreshDatabase;<\/code> et ajoutez la ligne de code suivante au-dessus de la fonction <code>test_the_application_returns_a_successful_response<\/code>:<\/p>\n<pre><code class=\"language-php\">use RefreshDatabase;<\/code><\/pre>\n<p>Le fichier <strong>ExampleTest.php<\/strong> devrait maintenant ressembler \u00e0 ceci :<\/p>\n<figure style=\"width: 1492px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/example-test-file.png\" alt=\"Fichier ExampleTest\" width=\"1492\" height=\"932\"><figcaption class=\"wp-caption-text\">Fichier ExampleTest<\/figcaption><\/figure>\n<h3>Lancez le test<\/h3>\n<p>Apr\u00e8s avoir ajout\u00e9 <code>RefreshDatabase<\/code> au fichier de test, ex\u00e9cutez le test \u00e0 l&rsquo;aide d&rsquo;Artisan :<\/p>\n<pre><code class=\"language-sh\">php artisan test<\/code><\/pre>\n<p>Ce code ex\u00e9cute tous les tests de l&rsquo;application et rafra\u00eechit la base de donn\u00e9es apr\u00e8s les tests, comme le montre l&rsquo;image ci-dessous :<\/p>\n<figure style=\"width: 421px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/successful-test.png\" alt=\"Un test Artisan r\u00e9ussi\" width=\"421\" height=\"178\"><figcaption class=\"wp-caption-text\">Un test Artisan r\u00e9ussi<\/figcaption><\/figure>\n<p>Maintenant, v\u00e9rifiez la base de donn\u00e9es pour voir la table des commentaires vide :<\/p>\n<figure style=\"width: 545px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/empty-comments-database.png\" alt=\"Base de donn\u00e9es des commentaires vide\" width=\"545\" height=\"277\"><figcaption class=\"wp-caption-text\">Base de donn\u00e9es des commentaires vide<\/figcaption><\/figure>\n\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Cet article explique comment cr\u00e9er un projet Laravel, le connecter \u00e0 une <a href=\"https:\/\/sevalla.com\/database-hosting\/\">base de donn\u00e9es<\/a> et cr\u00e9er et configurer des mod\u00e8les, des fichiers de migration, d&rsquo;usine et d&rsquo;ensemencement pour g\u00e9n\u00e9rer des donn\u00e9es al\u00e9atoires pour la base de donn\u00e9es. Il explique \u00e9galement comment r\u00e9initialiser la base de donn\u00e9es apr\u00e8s l&rsquo;ex\u00e9cution des tests.<\/p>\n<p>Vous avez maintenant vu comment Laravel Factories et Faker facilitent la g\u00e9n\u00e9ration de n&rsquo;importe quelle quantit\u00e9 de donn\u00e9es de test en quelques minutes pour tester une application ou m\u00eame comme placeholder &#8211; avec une configuration minimale.<\/p>\n<p>Lorsque votre application Laravel est pr\u00eate \u00e0 \u00eatre d\u00e9ploy\u00e9e, vous pouvez le faire sur les <a href=\"https:\/\/sevalla.com\/application-hosting\/\">services d&rsquo;h\u00e9bergement d&rsquo;applications<\/a> de Kinsta rapidement et efficacement.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les tests sont essentiels au d\u00e9veloppement web. Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d&rsquo;une mani\u00e8re pr\u00e9visible et facilement reproductible afin &#8230;<\/p>\n","protected":false},"author":259,"featured_media":68822,"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-68821","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 g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d&#039;une mani\u00e8re pr\u00e9visible et facilement reproductible. Apprenez \u00e0 obtenir des donn\u00e9es de commentaires sans les commentaires r\u00e9els des utilisateurs.\" \/>\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-model-factories\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories\" \/>\n<meta property=\"og:description\" content=\"Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d&#039;une mani\u00e8re pr\u00e9visible et facilement reproductible. Apprenez \u00e0 obtenir des donn\u00e9es de commentaires sans les commentaires r\u00e9els des utilisateurs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/\" \/>\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-05-05T10:18:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-03T02:59:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.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=\"Steve Bonisteel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d&#039;une mani\u00e8re pr\u00e9visible et facilement reproductible. Apprenez \u00e0 obtenir des donn\u00e9es de commentaires sans les commentaires r\u00e9els des utilisateurs.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.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=\"Steve Bonisteel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 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-model-factories\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/\"},\"author\":{\"name\":\"Steve Bonisteel\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f\"},\"headline\":\"Comment g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories\",\"datePublished\":\"2023-05-05T10:18:11+00:00\",\"dateModified\":\"2023-11-03T02:59:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/\"},\"wordCount\":2089,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/\",\"name\":\"Comment g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg\",\"datePublished\":\"2023-05-05T10:18:11+00:00\",\"dateModified\":\"2023-11-03T02:59:28+00:00\",\"description\":\"Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d'une mani\u00e8re pr\u00e9visible et facilement reproductible. Apprenez \u00e0 obtenir des donn\u00e9es de commentaires sans les commentaires r\u00e9els des utilisateurs.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#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 g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories\"}]},{\"@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\/d84ceff87bd64a4368a581fc8aa8bd6f\",\"name\":\"Steve Bonisteel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g\",\"caption\":\"Steve Bonisteel\"},\"description\":\"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/stevebonisteel\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories - Kinsta\u00ae","description":"Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d'une mani\u00e8re pr\u00e9visible et facilement reproductible. Apprenez \u00e0 obtenir des donn\u00e9es de commentaires sans les commentaires r\u00e9els des utilisateurs.","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-model-factories\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories","og_description":"Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d'une mani\u00e8re pr\u00e9visible et facilement reproductible. Apprenez \u00e0 obtenir des donn\u00e9es de commentaires sans les commentaires r\u00e9els des utilisateurs.","og_url":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-05-05T10:18:11+00:00","article_modified_time":"2023-11-03T02:59:28+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg","type":"image\/jpeg"}],"author":"Steve Bonisteel","twitter_card":"summary_large_image","twitter_description":"Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d'une mani\u00e8re pr\u00e9visible et facilement reproductible. Apprenez \u00e0 obtenir des donn\u00e9es de commentaires sans les commentaires r\u00e9els des utilisateurs.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg","twitter_creator":"@kinsta_fr","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Steve Bonisteel","Dur\u00e9e de lecture estim\u00e9e":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/"},"author":{"name":"Steve Bonisteel","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/d84ceff87bd64a4368a581fc8aa8bd6f"},"headline":"Comment g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories","datePublished":"2023-05-05T10:18:11+00:00","dateModified":"2023-11-03T02:59:28+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/"},"wordCount":2089,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/","url":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/","name":"Comment g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg","datePublished":"2023-05-05T10:18:11+00:00","dateModified":"2023-11-03T02:59:28+00:00","description":"Les Laravel Model Factories d\u00e9finissent les enregistrements de la base de donn\u00e9es d'une mani\u00e8re pr\u00e9visible et facilement reproductible. Apprenez \u00e0 obtenir des donn\u00e9es de commentaires sans les commentaires r\u00e9els des utilisateurs.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/05\/laravel-model-factories.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/laravel-model-factories\/#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 g\u00e9n\u00e9rer et utiliser de faux enregistrements avec Laravel Model Factories"}]},{"@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\/d84ceff87bd64a4368a581fc8aa8bd6f","name":"Steve Bonisteel","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0adffb3f9c86a6ec8245f8399d540823?s=96&d=mm&r=g","caption":"Steve Bonisteel"},"description":"Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.","url":"https:\/\/kinsta.com\/fr\/blog\/author\/stevebonisteel\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/68821","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\/259"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=68821"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/68821\/revisions"}],"predecessor-version":[{"id":68840,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/68821\/revisions\/68840"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/nl"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/se"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/es"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/translations\/dk"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/68821\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/68822"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=68821"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=68821"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=68821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}