Qu'est-ce que MVC?
Normes MVC pour Model-View-Control. Il s'agit d'un modèle architectural qui divise l'application en trois composants principaux.
1. Le modèle traite de la logique métier et des interactions avec les bases de données
2. Le contrôleur coordonne les activités entre le modèle et la vue
3. View est responsable de la présentation des données
Voici quelques-uns des avantages du modèle architectural MVC
- Couplage lâche - les composants existent et fonctionnent indépendamment les uns des autres.
- Flexibilité - on peut facilement apporter des modifications à des composants individuels
- Augmentation de la productivité - plusieurs personnes peuvent travailler sur le projet en même temps. Les développeurs frontaux peuvent travailler sur les vues et la présentation tandis que les développeurs backend peuvent se concentrer sur les modèles et comme le système est faiblement couplé, cela fonctionne à la fin de la journée.
Dans ce tutoriel, vous apprendrez:
- Qu'est-ce que MVC?
- Modèle
- Manette
- Vue
- Comment fonctionnent les frameworks MVC?
- Contrôleur CodeIgniter
- Modèle CodeIgniter
Modèle
Le modèle est responsable de l'interaction avec les sources de données. Il s'agit généralement d'une base de données, mais il peut également s'agir d'un service qui fournit les données demandées. Il est également courant que la logique métier soit contenue dans les modèles plutôt que dans le contrôleur. Cette pratique est généralement appelée contrôleur maigre modèle gras.
Le modèle écrit généralement des données dans la base de données, fournit un mécanisme d'édition, de mise à jour et de suppression de données. Dans une application Web moderne, les modèles utilisent des modèles de conception d'accès aux données tels que l'enregistrement actif pour faciliter l'interaction avec la base de données.
Par exemple, CodeIgniter utilise une bibliothèque intégrée Active Record pour aider les modèles tandis que d'autres frameworks tels que Laravel utilisent Eloquent Object Relational Mapper (ORM) qui facilite l'accès aux données.
Manette
Le contrôleur écoute les demandes entrantes de ressources des utilisateurs. Il agit comme intermédiaire entre le modèle et la vue et implémente parfois également certaines règles métier. Supposons que le contrôleur reçoive une demande d'enregistrement d'un utilisateur dans la base de données.
Le responsable du traitement peut effectuer la validation des données sur ce qui a été soumis pour s'assurer que tous les paramètres requis ont été soumis. S'il manque quelque chose, l'utilisateur est redirigé vers la page d'inscription avec le message d'erreur approprié affiché. Le responsable du traitement peut également demander au modèle d'effectuer plus de validation en vérifiant si l'adresse e-mail soumise existe déjà. Si toutes les règles de validation réussissent, le contrôleur soumet les données au modèle pour traitement et attend la réponse.
Une fois que le modèle a traité les informations et renvoyé une réponse positive, le contrôleur charge la vue appropriée et transmet les données renvoyées par le modèle en tant que paramètre.
Vue
La vue traite des données présentées à l'utilisateur final. Dans les applications Web, les vues contiennent souvent du HTML, du CSS et éventuellement du JavaScript. Les vues contiennent un code de programmation minimum. Le code contenu dans les vues est généralement utilisé pour parcourir des collections de données reçues en tant que paramètres du modèle ou de la fonction d'assistance pour nettoyer les données ou créer des liens pour modifier les enregistrements. La plupart des applications Web modernes utilisent généralement des moteurs de création de modèles qui définissent leur propre syntaxe, qui ressemble plus à un pseudocode et peut être facilement comprise par les concepteurs. Lorsque vous travaillez avec CodeIgniter, il est courant d'utiliser de courtes balises PHP et des structures de contrôle. Pour afficher quelque chose dans CodeIgniter, on peut utiliser le code suivant
Par opposition à
Les structures de contrôle sont généralement écrites comme suit
Comme vous pouvez le voir dans l'exemple ci-dessus, la vue utilisera une combinaison de PHP et de HTML au lieu de tout enfermer dans du code PHP pur.
Comment fonctionnent les frameworks MVC?
L'image suivante montre le fonctionnement du framework MVC
Un contrôleur reçoit la demande de l'utilisateur, interagit avec le modèle de base de données si nécessaire, puis renvoie le résultat au navigateur sous la forme d'un code HTML que le navigateur a interprété dans un format lisible par l'homme et affiché à l'utilisateur.
Contrôleur CodeIgniter
Décrivons maintenant ce qui vient de se passer lorsque nous avons chargé l'URL ci-dessus dans le navigateur Web.
Ouvrez le fichier Welcome.php controller application / controllers
Vous devriez pouvoir voir le code suivant
load->view('welcome_message');}}
ICI,
- défini ('BASEPATH') OU exit ('Aucun accès direct au script autorisé'); empêche l'accès direct au contrôleur si la requête n'est pas passée par index.php. ceci est pour des raisons de sécurité.
- class Welcome étend CI_Controller {…} définit la classe de contrôleur Welcome et étend la classe parent CI_Controller
- public function index () {…} définit la méthode d'index qui répond à l'URL http: // localhost: 3000
- $ this-> load-> view ('message_accueil'); charge la vue message_accueil qui se trouve dans le répertoire application / views
Nous allons maintenant mettre à jour la méthode d'index comme suit
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
ICI,
- $ this-> load-> model ('customers_model'); charge le modèle des clients.
- $ data ['client'] = $ this-> customers_model-> get_customer (3); appelle la méthode get_customer de customers_model et passe le paramètre 3. Dans cet exemple, nous avons codé en dur la valeur mais dans les applications réelles, ce serait un paramètre de l'URI.
- $ this-> load-> view ('welcome_message', $ data); charge la vue welcome_message et transmet la variable $ data à la vue
Modèle CodeIgniter
Créons maintenant la vue que nous avons référencée dans le code ci-dessus. Par souci de simplicité, notre modèle n'interagira pas avec la base de données mais renverra un enregistrement client statique. Nous travaillerons avec des bases de données dans les prochains tutoriels.
Créez un fichier Customers_model.php dans application / models
Ajoutez le code suivant
ICI,
- class Clients_model étend CI_Model {…} définit le modèle Customers_model qui étend CI_Model.
- public function get_customer ($ id) {…} définit la méthode get customer basée sur un identifiant client
- $ data […] définit les valeurs statiques de notre client fictif. Cela doit être une ligne renvoyée par la base de données.
- retourne $ data; renvoie les données client.
Autrement dit, c'est pour notre modèle. Modifions maintenant la vue welcome_message
Ouvrez welcome_message.php situé dans
application/views/welcome_message.php
Remplacez le code par ce qui suit
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Enregistrez les modifications
Chargez l'URL suivante dans le navigateur Web
http: // localhost: 3000 /
Vous devriez pouvoir voir la carte client comme indiqué dans l'image ci-dessous
Résumé
- MVC est un modèle architectural qui divise l'application en trois composants principaux
- Le modèle est responsable de l'interaction avec les sources de données
- Le contrôleur écoute les demandes entrantes de ressources des utilisateurs
- Dans les applications Web, les vues contiennent souvent du HTML, du CSS et éventuellement du JavaScript
- Un contrôleur reçoit la demande de l'utilisateur, interagit avec le modèle de base de données si nécessaire puis renvoie le résultat au navigateur sous forme de code HTML