CodeContrôleurs Igniter, vues et routage : Apprendre par l’exemple
⚡ Résumé intelligent
Ce CodeCet exemple Igniter crée une petite application illustrant le fonctionnement conjoint du routage, des contrôleurs et des vues. Un nouveau projet est créé avec Composer, ainsi qu'une carte des routes. URLs aux méthodes du contrôleur, et chaque méthode charge une vue qui renvoie du HTML au navigateur.

Dans ce tutoriel, vous allez apprendre les sujets suivants :
- Routage – le routage est responsable de répondre à URL Les requêtes. Le routage correspond aux requêtes. URL aux itinéraires prédéfinis. Si aucun itinéraire correspondant n'est trouvé, CodeIgniter génère une exception de page introuvable.
- surchargés Les routes sont liées aux contrôleurs. Les contrôleurs assurent la liaison entre les modèles et les vues. Ils interrogent le modèle pour obtenir les données et la logique métier, puis renvoient les résultats sous forme de présentation dans la vue. URL Lorsqu'une requête est associée à une route, elle est transmise à une fonction publique du contrôleur. Cette fonction interagit avec la source de données et la logique métier, puis renvoie la vue affichant les résultats.
- Vues – les vues sont responsables de la présentation. Une vue est généralement une combinaison de HTML, CSS et JavaScript. Cette partie est chargée d'afficher la page web à l'utilisateur. Généralement, les données affichées proviennent d'une base de données ou d'une autre source de données disponible.
Comment créer un nouveau CodeProjet Igniter
Nous utiliserons Composer pour créer un nouveau projet. Nous utiliserons le serveur intégré de PHP ; il n’est donc pas nécessaire d’avoir de logiciel supplémentaire tel que… ApacheDans ce tutoriel, nous utilisons le Windows Pour votre système d'exploitation, nous avons créé un dossier Sites sur le lecteur C. Vous pouvez utiliser n'importe quel répertoire qui vous convient.
Ouvrez l'invite de commandes ou le terminal et exécutez la commande suivante :
cd C:\Sites
Nous allons maintenant créer un CodeProjet Igniter utilisant Composer. Exécutez la commande suivante :
composer create-project CodeIgniter/framework ci-app
Ici:
- La commande ci-dessus crée un nouveau CodeProjet Igniter version 3, utilisant la dernière version stable (3.1.9 au moment de la rédaction), dans un répertoire appelé ci-app.
Une fois la commande exécutée, vous devriez voir des résultats similaires aux suivants dans le terminal :
Exécutez la commande suivante pour accéder au répertoire de projet nouvellement créé ci-app :
cd ci-app
Démarrez maintenant le serveur web intégré de PHP :
php -S localhost:3000
Ici:
- La commande ci-dessus lance le serveur PHP intégré sur le port 3000.
Ouvrez votre navigateur Web et accédez à l'adresse suivante URL: http://localhost:3000/Vous obtiendrez la page suivante :
Si vous voyez la page ci-dessus, félicitations, l'installation a réussi. CodeallumeurLa page est générée par la vue située dans application/views/welcome_message.php, et le contrôleur responsable se trouve dans application/controllers/Welcome.php.
CodeRoutage de l'allumeur
Pour l'instant, notre application ne comporte qu'un seul URL, qui est la page d'accueil. Dans cette section, nous allons personnaliser la page d'accueil et créer de nouveaux éléments. URLqui répondent à différentes requêtes.
Commençons par l'itinéraire vers la page d'accueil. Ouvrez le fichier de routes à l'emplacement ci-dessous :
application/config/routes.php
Vous devriez voir le contenu suivant:
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
Ici:
- $route['default_controller'] = 'welcome'; définit le contrôleur par défaut qui répond aux requêtes URI.
- $route['404_override'] = ”; permet de définir une route personnalisée pour les erreurs 404. Une erreur 404 se produit lorsqu'une page est introuvable. CodeIgniter possède un gestionnaire d'erreurs par défaut, mais vous pouvez définir le vôtre si vous le souhaitez.
- $route['translate_uri_dashes'] = FALSE; permet de remplacer les tirets par des underscores. Nous aborderons cette option plus en détail lorsque nous verrons comment fonctionnent les routes. CodeAllumeur.
Examinons maintenant la méthode du contrôleur responsable de l'affichage de la page d'accueil que nous avons vue à l'ouverture. http://localhost:3000/Ouvrez le fichier suivant :
application/controllers/Welcome.php
Vous devriez voir le code suivant :
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
Ici:
- La fonction `defined('BASEPATH') OR exit('No direct script access allowed');` empêche l'accès direct à la classe du contrôleur sans passer par le fichier `index.php`. Dans le modèle MVC, toutes les requêtes ont un point d'entrée unique, qui… CodeIgniter est défini par index.php. Ce code bloque toutes les requêtes qui ne transitent pas par index.php.
- class Welcome extends CI_Controller {…} définit une classe Welcome qui étend la classe parente CI_Controller.
- La fonction publique index() définit une fonction publique qui est appelée par défaut lorsque vous ouvrez la page d'accueil.
- $this->load->view('welcome_message'); charge la vue welcome_message, située dans application/views/welcome_message.php.
Jusqu'à présent, nous n'avons exploré que le contenu de la boîte. CodeIgniter. Apportons maintenant quelques modifications. Nous allons créer notre propre page d'accueil et remplacer la page par défaut. Créez un nouveau fichier dans application/views/home.php et ajoutez le code suivant :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Hello CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> CodeIgniter Hello World </h1> </div> </section> </body> </html>
Ici: Le code HTML ci-dessus charge le framework CSS Bulma et Font Awesome depuis un CDN et crée un document HTML très simple. Il applique une règle CSS simple issue du framework Bulma.
Ouvrez ce qui suit URL dans votre navigateur : http://localhost:3000/Vous devriez voir ce qui suit :
Parfait, nous avons modifié la page d'accueil avec succès. Passons à la suite : définissons notre route. Supposons que notre application doive également afficher une page « À propos ».
Créer un itinéraire
Ouvrez le fichier de routes application/config/routes.php et ajoutez la route suivante :
$route['about-us'] = 'welcome/about_us';
Ici:
- Lorsqu'un visiteur visite le URL /about-us, nous donnons des instructions CodeIgniter va rechercher un contrôleur Welcome et exécuter la méthode about_us.
Créer un contrôleur
Définissons maintenant la méthode de contrôleur about_us. Ouvrez le fichier application/controllers/Welcome.php et ajoutez la méthode suivante :
public function about_us(){
$this->load->view('about_us');
}
Ici:
- Le code ci-dessus définit une fonction about_us et charge une vue about_us.
Créer une vue
Créons maintenant la vue que nous venons de mentionner. Créez un nouveau fichier about_us.php dans application/views/about_us.php et ajoutez le code suivant :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>About CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> About us yap... </h1> </div> </section> </body> </html>
Nous sommes prêts. Ouvrez ce qui suit URL dans votre navigateur Web : http://localhost:3000/index.php/about-usVous verrez la page suivante :
Si vous pouvez voir la page ci-dessus, félicitations, vous avez créé avec succès une application simple dans CodeAllumeur.




