Tutoriel Laravel 8 : Générer et Lire un fichier Sitemap XML - Letecode

Tutoriel Laravel 8 : Générer et Lire un fichier Sitemap XML

Tutoriel Sitemap XML dynamique avec Laravel 8; Tout au long de ce guide, nous parlerons de la création d'un fichier sitemap.xml dynamique dans l'application laravel. De plus, nous allons également décrire comment lire le fichier xml du sitemap dans l'application laravel.

Jean Claude Mbiya
Jean Claude Mise à jour : 19 décembre 2022 1516

Mais avant de commencer à briser la glace, laissez-moi vous expliquer ce qu'est le Sitemap XML et à quel point il est important d'ajouter le fichier xml du sitemap dans l'application Laravel ou dans vos sites web.

SEO et Sitemap (plan du site)

De manière générale, nous avons tous entendu parler du référencement, et ce n'est pas seulement un mot-clé ; c'est plutôt ce mot qui décide de la popularité des applications Web. Le SEO décide du classement de votre site sur les moteurs de recherche. Par conséquent, notre tâche la plus importante est d'augmenter le référencement du site afin qu'il soit mieux classé.

Il existe de multiples facteurs qui amplifient le référencement du site ; l'ajout d'un fichier sitemap xml est l'un de ces facteurs que nous apprenons dans ce tutoriel.

Pourquoi avoir besoin d'un sitemap XML ?

Finalement, nous avons appris pourquoi le sitemap XML a du poids ; maintenant, comprenons ce que sont les sitemaps ? Le sitemap est idéalement un fichier qui se termine par une extension .xml ; il s'agit d'un simple fichier qui contient les pages importantes du site Web et permet au webmaster d'informer les moteurs de recherche des pages disponibles pour l'exploration. Ce fichier de plan de site ne se limite pas à laravel, quelle que soit la technologie que vous utilisez, mais assurez-vous que vous devez générer et ajouter un fichier xml du sitemap pour informer les moteurs de recherche.

Structure du sitemap

Voici la structure logique du fichier sitemap ; nous expliquerons petit à petit chaque propriété utilisée dans le fichier du plan de site suivant.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.test.com/</loc>
      <lastmod>2021-08-20</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
</urlset>

 

  • Cela commence par une balise d'ouverture relativement à une balise de fermeture de fin .<urlset></urlset>
  • La propriété xmlns utilisée pour définir le préfixe d'espace de noms à l'intérieur de la balise.<urlset>
  • Le xml contient une entrée d'url pour chaque URL qui doit être ajoutée dans le plan du site.
  • La propriété loc est la valeur enfant de l'url qui contient l'url de la page Web.
  • L' attribut lastmod est l'élément enfant de l'url, qui révèle quand la page a été modifiée pour la dernière fois.
  • Les attributs changefreq et prior sont des valeurs enfants relatives de la propriété url ; Ces accessoires permettent au moteur de recherche de connaître la priorité d'exploration et les fréquences de mise à jour.

Comment générer et lire un fichier XML du plan de site dans Laravel 8

  • Étape 1 : Installer le projet Laravel
  • Étape 2 : Enregistrez les détails de la base de données.
  • Étape 3 : Créer le modèle et la migration
  • Étape 4 : ajouter des données factices
  • Étape 5 : Générer et configurer le contrôleur
  • Étape 6 : Enregistrer l'itinéraire
  • Étape 7: Afficher le plan du site dans Laravel
  • Étape 8: Démarrer l'application Laravel

Installer le projet Laravel

La commande suivante installe une toute nouvelle application laravel d'une manière amplement propre.

composer create-project --prefer-dist laravel/laravel laravel-blog

Enregistrer les détails de la base de données

Le stockage et l'enregistrement des données dans la base de données nécessitent l'établissement de la connexion à la base de données ; cela peut être fait en ajoutant le nom de la base de données, le nom d'utilisateur et le mot de passe dans le fichier de configuration .env .

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=database_user_name
DB_PASSWORD=database_password

Créer un modèle et la migration

Les fichiers de modèle et de migration décident de la structure logique de la table qui réside dans la base de données ; sans bouger, le ciel et la terre exécutent l'ordre donné.

À des fins de démonstration, créez une table de blog avec l'url (url de la page Web) et les valeurs de description, placez le code suivant dans le fichier app/Models/Blog.php.

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Blog extends Model
{
    use HasFactory;
  protected $fillable = [
      'titre',         'url', 
        'description'
    ];
}

 

De même, mettez les mêmes valeurs dans le fichier database/migration/create_blogs_table.php.

<?php


use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;



class CreateBlogsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('blogs', function (Blueprint $table) {
            $table->id();
            $table->string('url');
            $table->string('titre');
            $table->text('description');            
            $table->timestamps();
        });
    }



    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('blogs');
    }
}

 

Maintenant, la migration est prête à démarrer, appuyez simplement sur la commande suivante depuis le terminal et propulsez la nouvelle table dans la base de données.

php artisan migrate

Ajouter des données factices

Ensuite, ajoutez les données de test dans le tableau ; cela aidera à créer l'url ou le slug pour générer un plan de site XML. Cependant, vous pouvez ignorer toute cette section si vous disposez de données réelles pour créer les pages Web.

php artisan make:factory BlogFactory --model=Blog

La bibliothèque faker offre des tonnes de méthodes pour créer des données de test ; néanmoins, nous utilisons la méthode randomNumber() pour générer les données d'URL.

Allez-y et placez le code ci-dessous dans le fichier database\factories\BlogFactory.php :

<?php

namespace Database\Factories;

use App\Models\Blog;
use Illuminate\Database\Eloquent\Factories\Factory;


class BlogFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Blog::class;


    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'titre' => $this->faker->text,
            'url' => $this->faker->randomNumber($nbDigits = NULL, $strict = false),
            'description' => $this->faker->text
        ];
    }
}

 

Lorsque tout est défini, utilisez les commandes tinker pour remplir les données dans la base de données.

php artisan tinker
Blog::factory()->count(25)->create()

 

Générer et configurer le contrôleur

La ligne de commande de php artisan offre une solution amplement propre et facile pour générer des contrôleurs et un autre fichier important. Générons un nouveau contrôleur avec la commande suggérée.

php artisan make:controller SitemapXmlController

La fonction index() récupère les données du blog et les insère parfaitement dans la vue d'index ; nous y accéderons plus tard pour lire le fichier xml du plan du site. Par conséquent, mettez à jour le fichier app/Http/Controllers/SitemapXmlController.php .

<?php

namespace App\Http\Controllers;


use Illuminate\Http\Request;
use App\Models\Blog;

class SitemapXmlController extends Controller
{
    public function index() {
        $posts = Blog::all();
        return response()->view('index', [
            'posts' => $posts
        ])->header('Content-Type', 'text/xml');
      }
}

Création de la route

Ensuite, veuillez vous déplacer vers le fichier routes/web.php ; à l'intérieur ici, définissez la route avec la méthode get ; il nous aide à lire le fichier de plan de site xml sur le navigateur.

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\SitemapXmlController;



Route::get('/sitemap.xml', [SitemapXmlController::class, 'index']);

 

Afficher l'URL du sitemap dans Laravel

Dans la dernière section de ce guide complet, nous expliquerons comment afficher le sitemap xml ou lire le fichier sitemap xml dans le navigateur à l'aide du fichier lame laravel. Assurez-vous de créer un nouveau fichier index.blade.php dans le dossier resources/Views/.

Juste après cela, ajoutez le code donné dans le fichier resources/Views/index.blade.php .

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    @foreach ($posts as $post)
        <url>
            <loc>{{ url('/') }}/page/{{ $post->url }}</loc>
            <lastmod>{{ $post->created_at->tz('UTC')->toAtomString() }}</lastmod>
            <changefreq>weekly</changefreq>
            <priority>0.8</priority>
        </url>
    @endforeach
</urlset>

 

Démarrer l'application Laravel

Enfin, nous devons tuer les deux oiseaux avec la même pierre ; tout d'abord, démarrez l'application laravel à l'aide de la commande php artisan serve ; deuxièmement, affichez le plan du site xml en utilisant l'url ci-dessous.

php artisan serve

http://127.0.0.1:8000/sitemap.xml

 

Conclusion

Dans ce tutoriel pragmatique de sitemap xml avec laravel, nous avons abordé le concept important qui appartient principalement au référencement, et nous avons compris comment générer un fichier xml de plan de site dans laravel. Non seulement cela, nous avons également appris à lire le plan du site XML dans la vue laravel en utilisant le modèle traditionnel laravel MVC. Nous supposons que vous avez aimé ce guide et partagez vos précieux commentaires avec nous, passez une bonne journée.

 

vote
Jean Claude Mbiya
Jean Claude Mbiya

Développeur Web full stack, Développeur Android (Certifié Google AAD) Formateur dans les domaines du numérique, Créateur letecode.com 👨‍💻. Je suis un grand passionné des nouvelles technologies et j'adore partager ce que j'apprend.

0 commentaire(s)

Laissez votre commentaire à @johnmbiya

ou pour laisser un commentaire