


Phinx - La bibliothèque de migrations dont vous ne saviez pas que vous aviez besoin
Ce didacticiel démontre l'utilisation de Phinx, un outil de migration de base de données agnostique framework, pour gérer les changements de schéma de base de données. Il met l'accent sur les avantages des migrations par rapport aux vidages SQL pour la collaboration d'équipe et le contrôle des versions.
Avantages clés de l'utilisation de phinx:
- Collaboration rationalisée: Phinx simplifie le partage des structures de base de données entre les développeurs, augmentant l'efficacité de l'équipe.
- Configuration facile: L'installation via le compositeur et le fichier de configuration (
phinx.yml
) sont simples. - Flexibilité de l'environnement: prend en charge plusieurs configurations de base de données (développement, test, production) dans un seul
phinx.yml
. - Création de migration simplifiée: Les commandes facilitent la création et la modification structurées de table, avec une réversibilité facile.
- Agnosticisme de la base de données: adaptable à divers systèmes de base de données, assurant l'évolutivité.
PRENDRE:
-
Installation: Installez Phinx à l'aide du compositeur:
composer require robmorgan/phinx --dev
-
Initialisation: Générez le fichier de configuration:
php vendor/bin/phinx init
(Renommez-le àmy-phinx.yml
pour permettre plusieurs configurations si nécessaire). -
Configuration (
my-phinx.yml
): remplit le fichiermy-phinx.yml
avec vos informations d'identification de base de données. Exemple:
paths: migrations: db/migrations environments: default_migration_table: phinxlog default_database: development development: adapter: mysql host: localhost name: homestead user: homestead pass: 'secret' port: 3306 charset: utf8
-
Création de migrations: Générer des fichiers de migration en utilisant:
php vendor/bin/phinx create [MigrationName] -c my-phinx.yml
(par exemple,php vendor/bin/phinx create Tag
). -
Écriture de migrations: remplir les fichiers de migration (par exemple,
20241027100000_Tag.php
) en utilisant l'API de Phinx (pas SQL brut) pour créer des tables et des colonnes. Exemple:
<?php use Phinx\Migration\AbstractMigration; class Tag extends AbstractMigration { public function change() { $table = $this->table('tag'); $table->addColumn('name', 'string', ['limit' => 45, 'null' => false]) // ... other columns ... ->create(); } }
-
Migrations en cours d'exécution: Appliquer des migrations en utilisant:
php vendor/bin/phinx migrate -c my-phinx.yml
-
Rollback: pour annuler les migrations:
php vendor/bin/phinx rollback -c my-phinx.yml
Techniques avancées:
- Configurations multiples: Gérer différents environnements en définissant des blocs d'environnement séparés dans
phinx.yml
. - Logique conditionnelle: Utiliser des instructions conditionnelles dans les migrations pour s'adapter à différents systèmes de base de données.
- meilleures pratiques: Créer une migration par changement logique pour maintenir la clarté et le contrôle de la version.
Questions fréquemment posées:
- Et si j'ai une base de données existante? Créer une migration représentant l'état actuel, puis en construisez.
- Comment gérer les migrations complexes? Les décomposer en unités logiques plus petites.
- Quels sont les avantages sur les autres outils? Phinx est le framework, fournit un contrôle de version et prend en charge des reculs faciles.
Cette réponse révisée rationalise l'explication, en se concentrant sur les concepts clés et en fournissant des exemples de code concis. Il intègre également les images fournies, en maintenant leur format et leur position d'origine.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Alipay Php ...

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...
