Table des matières
Quelle est la signification du mode MVC en PHP?
Comment fonctionne le mode MVC en PHP?
Comment implémenter le mode MVC dans mon projet PHP?
Quels sont les frameworks PHP MVC populaires?
Quels sont les avantages de l'utilisation de frameworks PHP MVC?
Comment le contrôleur interagit-il avec les modèles et les vues dans PHP MVC?
Comment traiter la saisie des utilisateurs dans PHP MVC?
Comment afficher les données dans la vue PHP MVC?
Comment mettre à jour les données dans le modèle de PHP MVC?
Comment s'assurer que mon application PHP MVC est sûre?
Maison développement back-end tutoriel php PHP Master | Le modèle MVC et PHP, partie 1

PHP Master | Le modèle MVC et PHP, partie 1

Feb 24, 2025 am 08:35 AM

Explication détaillée du modèle d'architecture de contrôle du modèle-View (MVC) et de l'exemple d'implémentation PHP

Points de base

  • Le modèle MVC est un modèle d'architecture logicielle qui sépare l'affichage des données des méthodes d'interaction avec les données, permettant aux développeurs frontaux et frontaux de travailler sur le même système sans interférer les uns avec les autres.
  • MVC a été appliqué au développement Web en raison de son accent sur la séparation des préoccupations et du code réutilisable, qui encourage le développement de systèmes modulaires à mettre à jour, ajouter ou supprimer rapidement les fonctionnalités.
  • Le mode
  • MVC contient trois pièces de base: modèle (modèle), vue (vue) et contrôleur. Un modèle est un stockage permanent de données, une vue est l'endroit où les données sont affichées et sa sortie finale est déterminée, le contrôleur traite les données entrées ou soumises par l'utilisateur et met à jour le modèle en conséquence.
  • Les applications Web PHP peuvent être écrites à l'aide du mode MVC. Cela implique de créer des classes distinctes pour le modèle, la vue et le contrôleur et la mise en place de leurs relations.

Le modèle MVC a été initialement proposé à la fin des années 1970 et est un modèle d'architecture logicielle basé sur la séparation de l'affichage des données des méthodes d'interaction avec les données. En théorie, un système MVC bien établi devrait permettre aux développeurs frontaux et aux développeurs back-end de travailler sur le même système sans interférer les uns avec les autres, partager ou éditer des fichiers que l'une ou l'autre partie traite. Bien que MVC ait été initialement conçu pour l'informatique personnelle, il a été largement adopté par les développeurs Web en raison de son accent sur la séparation des préoccupations et indirectement le code réutilisable. Ce modèle encourage le développement de systèmes modulaires, permettant aux développeurs de mettre à jour, d'ajouter ou même de supprimer rapidement les fonctionnalités. Dans cet article, je présenterai les principes de base de MVC, donnerai un aperçu de la définition de ce modèle et introduirai rapidement un exemple de MVC dans PHP. Ce message est définitivement pour quiconque n'a jamais utilisé MVC pour coder auparavant, ou ceux qui souhaitent revoir leurs compétences de développement MVC précédentes. PHP Master | The MVC Pattern and PHP, Part 1

Comprendre MVC

Le nom de ce modèle est une combinaison de ses trois parties principales: modèle, vue et contrôleur. La représentation visuelle d'un modèle MVC complet et correct est la suivante: PHP Master | The MVC Pattern and PHP, Part 1

Ce diagramme montre la disposition de flux unidirectionnelle des données, comment les données sont passées entre les composants et comment il fonctionne entre les composants.

Modèle (modèle)

Le modèle fait référence au stockage permanent des données utilisées dans la conception globale. Il doit permettre l'accès aux données à afficher ou à collecter et à écrire et est un pont entre le composant View et le composant de contrôleur en mode MVC. Un aspect important du modèle est qu'il est techniquement "aveugle" - je veux dire que le modèle n'est pas connecté ou compris avec ce qui se passe une fois les données transmises au composant View ou Controller. Il n'appelle ni ne cherche des réponses d'autres parties; Cependant, le modèle ne peut pas être simplement généralisé en tant que base de données ou passerelle vers un autre système qui traite le processus de données. Le modèle doit agir en tant que gardien des données, ne posant aucune question, mais accepter toutes les demandes. Les composants du modèle sont généralement la partie la plus complexe du système MVC et sont également le cœur de l'ensemble du système, car sans lui, il n'y a pas de connexion entre le contrôleur et la vue.

Affichage (vue)

La vue

est l'endroit où les données demandées au modèle et déterminent sa sortie finale. Traditionnellement, dans les applications Web construites à l'aide de MVC, les vues sont la partie système de la génération et de l'affichage de HTML. La vue déclenchera également la réaction d'un utilisateur et l'utilisateur continuera d'interagir avec le contrôleur. Un exemple de base est un bouton généré par une vue que l'utilisateur clique et déclenche une action dans le contrôleur. Il existe des malentendus sur les composants de la vue, en particulier les développeurs Web qui créent leurs applications en utilisant le modèle MVC. Par exemple, de nombreuses personnes croient à tort que la vue n'a aucun lien avec le modèle et que toutes les données affichées par la vue sont passées du contrôleur. En fait, ce processus ignore complètement la théorie derrière le modèle MVC. L'article de Fabio Cevasco "CakePhp Framework: votre premier essai" montre cette approche d'obscuscation de MVC dans le cadre CakePHP, un exemple de nombreux frameworks PHP MVC non traditionnels disponibles:

"Il convient de noter que pour appliquer correctement l'architecture MVC, il n'y a pas d'interaction entre le modèle et la vue: toute logique est gérée par le contrôleur"

De plus, il est inexact de décrire la vue comme un fichier de modèle. Cependant, comme le souligne Tom Butler, ce n'est pas la faute d'une personne, mais beaucoup d'erreurs commises par de nombreux développeurs, ce qui conduit à l'apprentissage incorrect des développeurs de MVC. Ensuite, ils continuent d'éduquer les autres incorrectement. Les vues sont en fait bien plus qu'un modèle, mais les cadres modernes inspirés du MVC ont rendu des vues si méconnaissables que personne ne se soucie vraiment de savoir si le cadre suit vraiment le bon motif MVC. Il est également important de se rappeler que la pièce de vue ne reçoit jamais de données du contrôleur. Comme je l'ai mentionné lors de la discussion du modèle, sans modèle intermédiaire, il n'y a pas de relation directe entre la vue et le contrôleur.

Contrôleur (contrôleur)

Le dernier composant d'un triple est le contrôleur. Son travail consiste à traiter les données entrées ou soumises par l'utilisateur et à mettre à jour le modèle en conséquence. La bouée de sauvetage du contrôleur est l'utilisateur; sans interaction utilisateur, le contrôleur n'a aucun but. C'est la seule partie du modèle avec lequel l'utilisateur doit interagir. Le contrôleur peut être simplement généralisé en tant que collecteur d'informations, qui est ensuite transmis au modèle d'organisation pour le stockage, et ne contient aucune autre logique que la logique requise pour collecter les entrées. Le contrôleur est également connecté uniquement à une seule vue et à un seul modèle, ce qui en fait un système de flux de données unidirectionnel, avec des poignées de main et des signatures à chaque point d'échange de données. Il est important de se rappeler que le contrôleur n'obtiendra que des instructions pour effectuer des tâches lorsque l'utilisateur interagit pour la première fois avec la vue, et que les fonctions de chaque contrôleur sont déclenchées par l'interaction de l'utilisateur avec la vue. L'erreur la plus courante qu'un développeur fait est de confondre le contrôleur avec une passerelle et finalement d'attribuer les fonctionnalités et les responsabilités que la vue doit assumer (c'est généralement le résultat du même développeur en considérant simplement à tort le composant de vue comme un modèle). En outre, une erreur courante consiste à fournir au contrôleur la fonctionnalité pour être responsable de la compression, de la livraison et du traitement des données du modèle à la vue seul, et en mode MVC, cette relation doit être maintenue entre le modèle et la vue.

MVC dans PHP

Les applications Web PHP peuvent être écrites à l'aide d'une architecture basée sur MVC. Commençons par un exemple simple:

<?php
class Model {
    public $string;

    public function __construct() {
        $this->string = "MVC + PHP = Awesome!";
    }
}
Copier après la connexion
<?php
class View {
    private $model;
    private $controller;

    public function __construct($controller, $model) {
        $this->controller = $controller;
        $this->model = $model;
    }

    public function output() {
        return "<p>" . $this->model->string . "</p>";
    }
}
Copier après la connexion
<?php
class Controller {
    private $model;

    public function __construct($model) {
        $this->model = $model;
    }
}
Copier après la connexion

Nous avons commencé un projet avec des classes très basiques pour chaque section de schéma. Nous devons maintenant définir la relation entre eux:

<?php
$model = new Model();
$controller = new Controller($model);
$view = new View($controller, $model);
echo $view->output();
Copier après la connexion

Comme vous pouvez le voir dans l'exemple ci-dessus, nous n'avons aucune fonctionnalité spécifique au contrôleur car nous ne définissons aucune interaction utilisateur pour notre application. La vue contient toutes les fonctions, car l'exemple est uniquement à des fins d'affichage. Élargissons maintenant l'exemple pour montrer comment ajouter des fonctionnalités au contrôleur pour ajouter l'interactivité à l'application:

<?php
class Model {
    public $string;

    public function __construct() {
        $this->string = "MVC + PHP = Awesome, click here!";
    }

    public function updateString($newString) {
        $this->string = $newString;
    }
}
Copier après la connexion
<?php
class View {
    private $model;
    private $controller;

    public function __construct($controller, $model) {
        $this->controller = $controller;
        $this->model = $model;
    }

    public function output() {
        return '<p><a href="https://www.php.cn/link/5ca1b0a18c411c3ebfc35c9dad7da921">' . $this->model->string . "</a></p>";
    }
}
Copier après la connexion
<?php
class Controller {
    private $model;

    public function __construct($model) {
        $this->model = $model;
    }

    public function clicked() {
        $this->model->updateString("Updated Data, thanks to MVC and PHP!");
    }
}
Copier après la connexion

Nous avons amélioré l'application avec certaines fonctionnalités de base. Définissez maintenant la relation entre les composants comme suit:

<?php
$model = new Model();
$controller = new Controller($model);
$view = new View($controller, $model);

if (isset($_GET['action']) && !empty($_GET['action'])) {
    $controller->{$_GET['action']}();
}

echo $view->output();
Copier après la connexion

Exécutez le code et lorsque vous cliquez sur le lien, vous pourrez voir la chaîne modifier ses données.

Conclusion

Nous avons introduit la théorie de base derrière le modèle MVC et créé une application MVC très basique, mais nous avons encore un long chemin à parcourir avant d'entrer dans toutes les caractéristiques méticuleuses. Dans le prochain article de cette série, nous couvrirons certaines des options auxquelles vous êtes confronté lorsque vous essayez de créer une véritable application MVC sur le Web de PHP. Restez à l'écoute! L'image de Fotolia Les commentaires de cet article ont été fermés. Y a-t-il des problèmes avec le mode MVC et le PHP? Pourquoi ne pas poser de questions sur notre forum?

FAQ pour le mode PHP MVC (FAQ)

Quelle est la signification du mode MVC en PHP?

Le mode Model-View-Controller (MVC) est un modèle de conception qui divise une application en trois composants interdépendants. Cette séparation permet aux développeurs de modifier ou de mettre à jour un composant sans affecter les autres. Dans PHP, le modèle MVC est particulièrement utile car il organise le code et facilite le maintien et l'échelle. Il peut également améliorer l'efficacité de la gestion des données et de la conception de l'interface utilisateur.

Comment fonctionne le mode MVC en PHP?

En PHP, le mode MVC fonctionne en divisant l'application en trois composants. Le modèle traite les données et la logique métier, la vue gère le rendu de l'interface utilisateur et des données, et le contrôleur traite les demandes de l'utilisateur et met à jour le modèle et affiche en conséquence. Cette séparation des préoccupations permet une gestion plus efficace du code et un débogage plus facile.

Comment implémenter le mode MVC dans mon projet PHP?

La mise en œuvre du mode MVC dans un projet PHP implique la création de fichiers ou de classes séparés pour les modèles, les vues et les contrôleurs. Le modèle contiendra des fonctions pour accéder et manipuler les données, la vue contiendra le code HTML et PHP pour afficher les données, et le contrôleur contiendra des fonctions pour le traitement des entrées des utilisateurs et des modèles et des vues.

Quels sont les frameworks PHP MVC populaires?

Il existe plusieurs frameworks PHP MVC populaires qui peuvent vous aider à implémenter le modèle MVC dans votre projet. Il s'agit notamment de Laravel, Symfony, Codeigniter et CakePHP. Ces cadres fournissent un moyen structuré et efficace de créer des applications Web à l'aide du modèle MVC.

Quels sont les avantages de l'utilisation de frameworks PHP MVC?

L'utilisation du cadre PHP MVC offre de nombreux avantages. Il fournit un moyen structuré d'organiser votre code, ce qui facilite le maintien et l'échelle. Il fournit également des fonctions et des bibliothèques intégrées pour les tâches courantes, en réduisant la quantité de code que vous devez écrire. De plus, le cadre MVC comprend souvent des fonctionnalités de sécurité qui protègent vos applications contre les vulnérabilités Web courantes.

Comment le contrôleur interagit-il avec les modèles et les vues dans PHP MVC?

Dans PHP MVC, le contrôleur agit comme un intermédiaire entre le modèle et la vue. Lorsque l'utilisateur fait une demande, le contrôleur interprète la demande et appelle la fonction de modèle correspondante pour traiter les données. Il met ensuite à jour la vue pour refléter toute modification des données.

Comment traiter la saisie des utilisateurs dans PHP MVC?

Dans PHP MVC, l'entrée de l'utilisateur est généralement traitée par le contrôleur. Le contrôleur reçoit l'entrée utilisateur, le vérifie et le transmet au modèle de traitement. Le modèle met ensuite à jour les données et informe le contrôleur, qui à son tour met à jour la vue.

Comment afficher les données dans la vue PHP MVC?

Dans PHP MVC, les données s'affichent dans la vue en utilisant le code PHP et HTML. Le contrôleur récupère les données du modèle et les transmet à la vue, et la vue génère du HTML pour afficher les données.

Comment mettre à jour les données dans le modèle de PHP MVC?

Dans PHP MVC, les données du modèle sont mises à jour via des fonctions appelées par le contrôleur. Ces fonctions peuvent inclure des opérations telles que la création, la lecture, la mise à jour et la suppression des données.

Comment s'assurer que mon application PHP MVC est sûre?

La création de votre application PHP MVC est sûre implique plusieurs étapes. Ces étapes incluent la validation et le nettoyage des entrées utilisateur, en utilisant des instructions préparées ou des requêtes paramétrées pour empêcher l'injection SQL et en utilisant des fonctionnalités de sécurité intégrées du cadre MVC. Il est également important de maintenir votre cadre et toutes les dépendances à jour pour éviter les vulnérabilités connues.

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

Video Face Swap

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 !

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)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

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,

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

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.

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

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? Comment déboguer le mode CLI dans phpstorm? Apr 01, 2025 pm 02:57 PM

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) ...

Que sont les énumérations (enums) dans PHP 8.1? Que sont les énumérations (enums) dans PHP 8.1? Apr 03, 2025 am 12:05 AM

La fonction d'énumération dans PHP8.1 améliore la clarté et la sécurité du type du code en définissant les constantes nommées. 1) Les énumérations peuvent être des entiers, des chaînes ou des objets, améliorant la lisibilité du code et la sécurité des types. 2) L'énumération est basée sur la classe et prend en charge des fonctionnalités orientées objet telles que la traversée et la réflexion. 3) L'énumération peut être utilisée pour la comparaison et l'attribution pour assurer la sécurité du type. 4) L'énumération prend en charge l'ajout de méthodes pour implémenter une logique complexe. 5) La vérification stricte et la gestion des erreurs peuvent éviter les erreurs courantes. 6) L'énumération réduit la valeur magique et améliore la maintenabilité, mais prêtez attention à l'optimisation des performances.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

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 ...

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

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.

See all articles