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.

  • 🧭 Routage: Les itinéraires correspondent à un URL à une méthode de contrôleur, et un non apparié URL génère une erreur de page introuvable.
  • Contrôleurs: Une méthode de contrôleur répond à une route, demande des données et renvoie une vue.
  • 🖼️ Vues: Une vue combine HTML, CSS et JavaScript permettant de présenter le résultat à l'utilisateur.
  • 📦 Configuration du projet : Composer crée le projet et le serveur PHP intégré l'exécute localement.
  • 🏠 Route par défaut : default_controller définit la page d'accueil, et 404_override définit une page d'erreur personnalisée.
  • Itinéraire personnalisé : Une route comme about-us correspond à la méthode about_us du contrôleur Welcome.
  • (I.e. Plein débit : URL Pour accéder au contrôleur, puis à la vue, le code HTML est renvoyé au navigateur.

CodeContrôleurs et vues Igniter

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 :

Compositeur créant un nouveau CodeProjet Igniter

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 :

Codepage d'accueil par défaut d'Igniter

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 :

Encadrement Sur Mesure CodePage d'accueil d'Igniter

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 :

CodePage « À propos » d’Igniter

Si vous pouvez voir la page ci-dessus, félicitations, vous avez créé avec succès une application simple dans CodeAllumeur.

FAQ

Une entrée d'itinéraire cartographie un URL segmentez vers un contrôleur et une méthode, tels que 'welcome/about_us'. Lorsque cela URL est demandé, CodeIgniter exécute la méthode nommée, qui charge et renvoie une vue.

Il configure le contrôleur qui gère la racine du site lorsqu'aucun contrôleur spécifique n'est spécifié. URL est donné. Dans l'exemple, « bienvenue » signifie que la page d'accueil est servie par la méthode index du contrôleur Welcome.

Non. Le serveur PHP intégré, lancé avec la commande `php -S localhost:3000`, suffit pour exécuter l'exemple en local. Apache ou Nginx ne sont nécessaires que pour un déploiement en production.

Oui. À partir de la description d'une page, l'IA peut écrire l'entrée de route, la méthode du contrôleur et une vue correspondante, et ainsi de suite.ping Les noms sont cohérents. Vérifiez que les chemins d'accès correspondent à vos CodeVersion allumeur.

Cet exemple utilise CodeIgniter 3, qui stocke les contrôleurs et les vues sous application/. CodeIgniter 4 a restructuré les répertoires et les espaces de noms, de sorte que les chemins d'accès et la syntaxe diffèrent dans les projets plus récents.

Résumez cet article avec :