Tutoriel PHP MVC Framework: Exemple de CodeIgniter

Table des matières:

Anonim

Qu'est-ce que le framework PHP MVC?

PHP MVC est un modèle de conception d'application qui sépare les données d'application et la logique métier (modèle) de la présentation (vue). MVC signifie Model, View & Controller.

Le contrôleur sert d'intermédiaire entre les modèles et les vues.

Considérez le modèle de conception MVC comme une voiture et le conducteur.

La voiture a les pare-brise (vue) que le conducteur (contrôleur) utilise pour surveiller le trafic devant, puis la vitesse ou le freinage (modèle) en fonction de ce qu'il voit devant.

Pourquoi utiliser PHP MVC Framework?

  • Les frameworks PHP MVC simplifient le travail avec des technologies complexes en:
    • Masquer tous les détails d'implémentation complexes
    • Fournir des méthodes standard que nous pouvons utiliser pour créer nos applications.
    • Augmentation de la productivité des développeurs, car la mise en œuvre de base des activités telles que la connexion à la base de données, la désinfection des entrées des utilisateurs, etc. est déjà partiellement mise en œuvre.
    • Respect des normes de codage professionnelles

Dans ce didacticiel, vous apprendrez-

  • Modèle de conception PHP MVC
  • Types de framework PHP MVC
  • Portage de l'application de sondage d'opinion sur CodeIgniter
  • Paramètres de configuration de la base de données
  • Créer notre modèle
  • Créer nos points de vue
  • Tester notre application

Modèle de conception PHP MVC

Discutons maintenant brièvement de chaque composant du modèle de conception MVC.

Modèle - cette partie concerne la logique métier et les données d'application. Il peut être utilisé pour effectuer des validations de données, traiter des données et les stocker. Les données peuvent provenir;

  • fichier plat
  • base de données
  • Document XML
  • Autres sources de données valides.

Contrôleur - c'est la partie qui traite les demandes des utilisateurs pour les ressources du serveur.

Par exemple, lorsque les utilisateurs demandent l'URL… /index.php?products=list, le contrôleur chargera le modèle de produits pour récupérer les données des produits puis affichera les résultats dans la vue de liste.

En un mot, le contrôleur relie les modèles et les vues en fonction des ressources demandées.

Vues - cette partie traite de la présentation des données à l'utilisateur. Ceci est généralement sous forme de pages HTML.

Types de framework PHP MVC

La sélection du meilleur framework PHP est un défi.

Vous n'avez pas besoin d'écrire votre propre framework pour bénéficier des avantages de MVC.

Vous ne devez essayer de créer votre propre conception d'application liée à MVC que pour comprendre le fonctionnement des infrastructures MVC.

Une fois que vous êtes à l'aise avec le fonctionnement des frameworks MVC, vous devez passer aux frameworks matures et déjà testés.

Le tableau ci-dessous décrit brièvement certains des frameworks PHP populaires et les fonctionnalités que chaque framework offre.

Cadre Description
CodeIgniter https://codeigniter.com/ C'est l'un des frameworks PHP MVC les plus populaires. Il est léger et a une courte courbe d'apprentissage. Il dispose d'un riche ensemble de bibliothèques qui aident à créer rapidement des sites Web et des applications. Les utilisateurs ayant une connaissance limitée de la programmation POO peuvent également l'utiliser. Les applications alimentées par CodeIgniter comprennent;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Il s'agit d'un cadre sécurisé et léger HMVC Hierarchical Model View Controller. Il dispose d'un riche ensemble de composants pour développer rapidement des applications. Les entreprises qui utilisent Kohana comprennent;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Il est calqué sur Ruby sur rails. Il est connu pour des concepts tels que les modèles de conception de logiciels, la convention sur la configuration, ActiveRecord, etc. Les applications alimentées par CakePHP incluent;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend C'est un cadre puissant qui est;
  • Sécurisé, fiable, rapide et évolutif
  • Prend en charge le Web 2.0 et la création de services Web.
Il propose des API de fournisseurs tels qu'Amazon, Google, Flickr, Yahoo, etc. Il est idéal pour développer des applications professionnelles. Les applications alimentées par Zend incluent;
  • CMS Pimcore,
  • DotKernel.
Les entreprises utilisant le framework Zend incluent:
  • BBC
  • Cisco
  • Webex
  • Offres.com

Portage de l'application de sondage d'opinion sur CodeIgniter

Dans ce tutoriel, nous avons créé une application de sondage PHP. Ici, nous porterons ce code sur CodeIgniter

  • Téléchargez la dernière version de CodeIgniter depuis leur site Web.
  • Extrayez le contenu du fichier compressé dans votre répertoire de développement dans le répertoire de votre serveur Web. Nous utiliserons ciopinionpoll comme nom de dossier dans cette leçon.
  • Accédez à l'URL http: // localhost / ciopinionpoll /

Nous allons maintenant porter notre application de sondage d'opinion sur CodeIgniter. Rappelons que notre application était divisée en trois composants majeurs à savoir le;

  • Contrôleur frontal - c'est la partie qui répond aux demandes d'URL et renvoie la page demandée. Ce code ira dans le contrôleur
  • Modèle - c'est le code qui répond aux données demandées et renvoie les données demandées. Ce code ira dans le modèle
  • Vues - c'est le code responsable du formatage et de l'affichage des données. Ce code ira dans la vue
    • Accédez au dossier ciopinionpoll
    • Ouvrez le fichier database.php situé dans le répertoire application / config.
    • Localisez les lignes de code suivantes

Paramètres de configuration de la base de données

  • Définissez le nom d'utilisateur sur root
  • Définissez le mot de passe sur votre mot de passe root localhost
  • Nom de la base de données à opinion_poll. Notez que nous utiliserons la base de données créée dans la leçon précédente.
  • Enregistrez les modifications et fermez le fichier.

Créer notre modèle

Ensuite, nous allons créer notre modèle qui étendra le CI_Model. Le CI_Model fait partie des bibliothèques CodeIgniter. Le modèle sera situé dans application / models opinion_poll_model.php

load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?>

ICI,

  • «La classe Opinion_poll_model étend CI_Model…» est notre modèle qui étend le CI_Model
  • «… Parent :: __construct ();» appelle le constructeur CI_Model
  • "$ This-> load-> database ();" charge la bibliothèque de base de données afin que notre application puisse interagir avec la base de données
  • «$ This-> db->» est l'enregistrement actif de CodeIgniter. Consultez ce lien pour plus d'informations sur l'enregistrement actif.

Création de notre contrôleur Créons maintenant le contrôleur. Nous utiliserons le contrôleur CodeIgniter par défaut situé dans application / controllers / welcome.php. Remplacez ses codes source par le code suivant.

load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>

ICI,

  • «If (! Defined ('BASEPATH')) exit ('Aucun accès direct au script autorisé');» garantit que les utilisateurs n'accèdent pas directement à la classe de contrôleur
  • "La classe Welcome étend CI_Controller…" notre contrôleur étend la classe CI_Controller
  • «Public function __construct ()» appelle la méthode de contructor de classe CI_Controller et charge notre modèle Opinion_poll_model
  • «Public function index ()…» est la fonction qui correspond à index.php. il utilise la classe d'entrée de CodeIgniter pour vérifier si un vote a été soumis, l'ajouter à la base de données puis afficher les résultats. Si le tableau de publication de la classe d'entrée est vide, il charge la page de vote.
  • «$ This-> input-> post ('…')» est la classe d'entrée CodeIgniter qui saisit le contenu de la variable globale $ _POST.
  • «$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))» appelle la méthode add_vote du modèle pour ajouter le vote dans la base de données.

Créer nos points de vue

Rappelez-vous de l'exemple précédent que nous avions deux pages HTML, une pour le vote et l'autre pour les résultats. Nous utiliserons le même code HTML avec des modifications minimes pour créer nos vues. Créez les fichiers suivants dans le répertoire application / views

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Créons maintenant la page de résultats results.php

JavaScript Libraries - Opinion Poll Results

JavaScript Libraries - Opinion Poll Results

What is your favorite JavaScript Library?

people have thus far taken part in this poll:

Return to voting page

Tester notre application

En supposant que le répertoire racine de votre application est ciopinion, accédez à http: // localhost / ciopionpoll /

Cliquez sur le bouton OK, vous verrez le message d'alerte suivant

Votez pour votre candidat préféré puis cliquez sur OK Vous verrez la page de résultats suivante

Conclusion

CodeIgniter est un framework PHP MVC facile à apprendre et à utiliser qui peut réduire considérablement le temps passé à développer des applications.

Résumé

  • Un framework est un ensemble de bibliothèques qui fournissent une implémentation partielle des tâches courantes.
  • PHP a un certain nombre de frameworks MVC matures et testés open source.
  • Une bonne approche de développement sépare les données de la présentation et encourage l'utilisation d'un point d'entrée unique dans une application.
  • Les applications PHP traditionnelles qui suivent les meilleures pratiques de conception d'application peuvent être portées vers des frameworks MVC avec des modifications minimes.