Maison développement back-end tutoriel php Middleware Laravel : ajoutez la migration de bases de données et la gestion des versions à votre application

Middleware Laravel : ajoutez la migration de bases de données et la gestion des versions à votre application

Aug 02, 2023 am 10:17 AM
版本管理 数据库迁移 laravel中间件

Middleware Laravel : ajoutez la migration de bases de données et la gestion des versions aux applications

Lors du développement et de la maintenance d'une application Web, la migration de bases de données et la gestion des versions sont une tâche très importante. Ils nous permettent de gérer facilement la structure et les données de la base de données sans avoir à mettre à jour ou reconstruire manuellement la base de données. Le framework Laravel fournit des fonctions puissantes et pratiques de migration de bases de données et de gestion de versions. En utilisant un middleware, nous pouvons intégrer plus facilement ces fonctions dans nos applications.

Tout d'abord, nous devons nous assurer que notre projet Laravel est installé et fonctionne correctement. Dans cet article, nous nous concentrerons sur la façon d'utiliser le middleware Laravel pour ajouter des fonctionnalités de migration de bases de données et de gestion de versions à nos applications.

Tout d'abord, nous devons introduire le package illuminate/database dans notre projet. Ouvrez le fichier composer.json du projet et ajoutez le code suivant : illuminate/database包。打开项目的composer.json文件并添加以下代码:

"require": {
    "illuminate/database": "^8.0"
}
Copier après la connexion

保存文件后,在命令行中运行composer update命令以安装该包。

接下来,我们需要在Laravel项目的config/app.php文件中配置我们的数据库连接。在databases数组中添加以下代码:

'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],
Copier après la connexion

确保你已经设置了正确的数据库连接参数,并保存文件。

现在,我们将创建一个中间件来处理数据库迁移和版本管理。在命令行中,输入以下命令创建一个名为DatabaseMiddleware的中间件类:

php artisan make:middleware DatabaseMiddleware
Copier après la connexion

此命令将在app/Http/Middleware目录下创建一个名为DatabaseMiddleware.php的文件。打开该文件,并使用以下代码替换其中的内容:

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateDatabaseMigrationsMigrator;

class DatabaseMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $migrator = new Migrator(app('db'), app('migration.repository'));

        if ($this->needsMigration($migrator)) {
            $migrator->run(database_path('migrations'));
        }

        if ($this->needsSeeding($migrator)) {
            $migrator->run(database_path('seeds'));
        }

        return $next($request);
    }

    /**
     * Determine if the database needs to be migrated.
     *
     * @param  IlluminateDatabaseMigrationsMigrator  $migrator
     * @return bool
     */
    protected function needsMigration($migrator)
    {
        return count($migrator->pendingMigrations()) > 0;
    }

    /**
     * Determine if the database needs to be seeded.
     *
     * @param  IlluminateDatabaseMigrationsMigrator  $migrator
     * @return bool
     */
    protected function needsSeeding($migrator)
    {
        return $migrator->repositoryExists() && !$migrator->repositoryHasSeeded();
    }
}
Copier après la connexion

上述代码中,我们创建了一个名为DatabaseMiddleware的中间件类。在handle方法中,我们使用Migrator类来执行数据库迁移和版本管理操作。如果有未执行的迁移,我们将运行run方法来执行这些迁移。类似地,如果尚未进行过数据填充,我们将运行run方法来进行数据填充。

接下来,我们需要在应用程序的中间件配置文件中注册我们的中间件。打开app/Http/Kernel.php文件,在$routeMiddleware数组中添加以下代码:

'database' => AppHttpMiddlewareDatabaseMiddleware::class,
Copier après la connexion

保存文件后,我们的中间件已经注册到应用程序中了。

最后,我们需要在我们的路由或控制器中使用我们的中间件。假设我们要将数据库迁移和版本管理应用于所有路由,我们可以在web中间件组中使用database中间件。打开app/Providers/RouteServiceProvider.php文件,将以下代码添加到mapWebRoutes

protected function mapWebRoutes()
{
    Route::middleware('web', 'database') // 添加 'database' 中间件
        ->namespace($this->namespace)
        ->group(base_path('routes/web.php'));
}
Copier après la connexion
Après avoir enregistré le fichier, exécutez la commande composer update sur la ligne de commande pour installer le package.

Ensuite, nous devons configurer notre connexion à la base de données dans le fichier config/app.php du projet Laravel. Ajoutez le code suivant dans le tableau databases :

rrreee

Assurez-vous d'avoir défini les paramètres de connexion à la base de données corrects et enregistrez le fichier.

Maintenant, nous allons créer un middleware pour gérer la migration des bases de données et la gestion des versions. Dans la ligne de commande, entrez la commande suivante pour créer une classe middleware nommée DatabaseMiddleware : 🎜rrreee🎜Cette commande créera une classe nommée Le fichier de DatabaseMiddleware.php. Ouvrez le fichier et remplacez son contenu par le code suivant : 🎜rrreee🎜Dans le code ci-dessus, nous avons créé une classe middleware nommée DatabaseMiddleware. Dans la méthode handle, nous utilisons la classe Migrator pour effectuer les opérations de migration de base de données et de gestion des versions. S'il y a des migrations non exécutées, nous exécuterons la méthode run pour exécuter ces migrations. De même, si le remplissage des données n'a pas encore été effectué, nous exécuterons la méthode run pour effectuer le remplissage des données. 🎜🎜Ensuite, nous devons enregistrer notre middleware dans le fichier de configuration du middleware de l'application. Ouvrez le fichier app/Http/Kernel.php et ajoutez le code suivant dans le tableau $routeMiddleware : 🎜rrreee🎜Après avoir enregistré le fichier, notre middleware a été enregistré dans le application . 🎜🎜Enfin, nous devons utiliser notre middleware dans notre route ou notre contrôleur. Supposons que nous souhaitions appliquer la migration de base de données et le contrôle de version à toutes les routes, nous pouvons utiliser le middleware database dans le groupe de middlewares web. Ouvrez le fichier app/Providers/RouteServiceProvider.php et ajoutez le code suivant à la méthode mapWebRoutes : 🎜rrreee🎜Après avoir enregistré le fichier, nous avons intégré avec succès la migration et la version de la base de données. logiciel de gestion dans notre application. 🎜🎜Avec les étapes ci-dessus, nous avons utilisé avec succès le middleware Laravel pour la migration de bases de données et la gestion des versions. Chaque fois que nous accédons à notre application, le middleware vérifie si la base de données doit être migrée ou versionnée et effectue ces opérations si nécessaire. 🎜🎜J'espère que cet article vous sera utile pour utiliser Laravel pour la migration de bases de données et la gestion des versions. Le middleware fournit un moyen pratique d'intégrer ces fonctions dans nos applications, rendant notre travail de développement et de maintenance plus efficace et plus simple. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment Node.js effectue-t-il la gestion des versions ? 3 outils pratiques de gestion de versions à partager Comment Node.js effectue-t-il la gestion des versions ? 3 outils pratiques de gestion de versions à partager Aug 10, 2022 pm 08:20 PM

Comment Node.js effectue-t-il la gestion des versions ? L’article suivant partagera avec vous 3 outils de gestion de versions Node.js très pratiques, j’espère qu’il vous sera utile !

Conseils de migration de base de données dans le framework Django Conseils de migration de base de données dans le framework Django Jun 17, 2023 pm 01:10 PM

Django est un framework de développement Web écrit en Python. Il fournit de nombreux outils et modules pratiques pour aider les développeurs à créer rapidement des sites Web et des applications. L'une des fonctionnalités les plus importantes est la fonction de migration de base de données, qui peut nous aider à gérer simplement les modifications du schéma de base de données. Dans cet article, nous présenterons quelques conseils pour utiliser la migration de base de données dans Django, notamment comment démarrer une nouvelle migration de base de données, comment détecter les conflits de migration de base de données, comment afficher les enregistrements historiques de migration de base de données, etc.

Étapes pour implémenter les migrations de bases de données (Migrations) à l'aide du framework Zend Étapes pour implémenter les migrations de bases de données (Migrations) à l'aide du framework Zend Jul 28, 2023 pm 05:54 PM

Étapes pour implémenter les migrations de bases de données (Migrations) à l'aide du framework Zend Introduction : La migration de bases de données fait partie intégrante du processus de développement logiciel. Sa fonction est de faciliter la modification et le contrôle de version par l'équipe de la structure de la base de données pendant le développement. Le Zend Framework fournit un ensemble puissant d'outils de migration de bases de données qui peuvent nous aider à gérer facilement les modifications apportées à la structure de la base de données. Cet article présentera les étapes d'utilisation du framework Zend pour implémenter la migration de bases de données et joindra des exemples de code correspondants. Étape 1 : Installez Zend Framework en premier

Comment gérer les exceptions à l'aide d'un middleware dans Laravel Comment gérer les exceptions à l'aide d'un middleware dans Laravel Nov 04, 2023 pm 02:26 PM

Comment utiliser le middleware pour gérer les exceptions dans Laravel Le middleware est un concept important dans le framework Laravel. Il peut effectuer une série d'opérations avant et après que la requête atteigne le contrôleur. En plus de la vérification des autorisations, de la journalisation et d’autres fonctions courantes, le middleware peut également être utilisé pour gérer les exceptions. Dans cet article, nous explorerons comment utiliser le middleware pour gérer les exceptions dans Laravel et fournirons des exemples de code spécifiques. Tout d’abord, nous devons créer un middleware de gestion des exceptions. Vous pouvez générer une classe middleware en exécutant la commande suivante :

PHP et SQLite : Comment effectuer des migrations et des mises à niveau de bases de données PHP et SQLite : Comment effectuer des migrations et des mises à niveau de bases de données Jul 28, 2023 pm 08:10 PM

PHP et SQLite : Comment effectuer la migration et la mise à niveau de bases de données La migration et la mise à niveau de bases de données sont une tâche très courante lors du développement d'applications Web. Pour les développeurs utilisant PHP et SQLite, ce processus peut être plus compliqué. Cet article explique comment utiliser PHP et SQLite pour la migration et la mise à niveau de bases de données, et fournit quelques exemples de code à titre de référence. Créer une base de données SQLite Tout d'abord, nous devons créer une base de données SQLite. Utiliser la base de données SQLite est très pratique, nous

Comment utiliser un middleware pour l'exportation de données dans Laravel Comment utiliser un middleware pour l'exportation de données dans Laravel Nov 02, 2023 am 08:29 AM

Laravel est un framework d'application Web PHP populaire qui fournit de nombreuses fonctionnalités pratiques pour développer des applications Web hautes performances, évolutives et faciles à entretenir. L'une des fonctionnalités importantes est le middleware, qui peut effectuer certaines opérations entre les requêtes et les réponses. Dans cet article, nous verrons comment exporter des données vers des fichiers Excel à l'aide d'un middleware. Création d'une application Laravel Tout d'abord, nous devons créer une application Laravel. Vous pouvez utiliser co

A quoi sert le middleware Laravel ? A quoi sert le middleware Laravel ? Apr 09, 2024 pm 05:03 PM

Le middleware Laravel est utilisé pour : 1. L'authentification et l'autorisation ; 2. Le traitement des requêtes et des réponses HTTP ; 3. Le filtrage des réponses ; 4. La journalisation et la surveillance ; Le middleware permet aux développeurs d'ajouter facilement des fonctionnalités et des contraintes aux applications en dehors des contrôleurs de routage.

Comment utiliser le middleware pour l'autorisation de connexion WeChat dans Laravel Comment utiliser le middleware pour l'autorisation de connexion WeChat dans Laravel Nov 03, 2023 am 10:55 AM

Comment utiliser le middleware pour l'autorisation de connexion WeChat dans Laravel Avec le développement rapide de l'Internet mobile, la connexion tierce est devenue un moyen populaire pour les utilisateurs de s'inscrire et de se connecter rapidement. Parmi eux, la connexion WeChat est l'une des plus populaires. Pour les développeurs, comment utiliser la connexion WeChat pour l'autorisation sur leurs propres sites Web ou applications est un besoin courant. Cet article expliquera comment utiliser le middleware dans le framework Laravel pour implémenter la fonction d'autorisation de connexion WeChat et fournira des exemples de code spécifiques. Tout d’abord, nous devons télécharger et installer Larav

See all articles