CodeIgniter 4 – Vos premières pages !

CodeIgniter 4 – Vos premières pages !

Dans cette quatrième partie du cours, nous allons apprendre à créer des pages.

Bonjour à tous ! Ce dimanche nous allons apprendre à créer des pages : un contrôleur et deux vues 🙂

Configurer la route

On va donc ajouter des pages. Pour cela, il faut dire au site quelle controleur il doit charger en premier. Allez dans application/config/routes.php

[php]

$route[‘default_controller’] = ‘welcome’;
$route[‘404_override’] =  »;

[/php]

default_controller correspond au contrôleur qui sera appelé lorsqu’un utilisateur affichera votre site.
C’est à vous de choisir le nom du contrôleur, en sachant que si vous créez d’autres pages dans ce contrôleur, le nom du contrôleur apparaîtra dans l’adresse.

Exemple, dans le contrôleur « index », je mets la page d’index du site et une page « contact » :
L’URL de ma page index sera : https://127.0.0.1/tuto_codeigniter/
L’URL de ma page contact sera : https://127.0.0.1/tuto_codeigniter/index/contact
Pour le cours, je vais quand même appeler mon contrôleur « index ». Remplacez donc « welcome » par « index » dans le fichier routes.php puis sauvegardez et vous pouvez fermer le fichier.

Avant d’aller plus loin, il faut créer un fichier htaccess et le placer à la racine de votre site, près de votre index.php et de vos dossiers application et system :

Cliquez pour afficher le contenu du HTACCESS

# Empêche la visualisation de l’arborescence, n’a rien à voir avec le masquage du « index.php ». Options -Indexes # Active le module de réécriture d’URL. RewriteEngine on # Toutes les URL qui ne correspondent pas à ces masques sont réécrites. RewriteCond $1 !^(index.php|assets/|robots.txt) # Toutes les autres URL vont être redirigées vers le fichier index.php. RewriteRule ^(.*)$ index.php/$1 [L]

Il servira pour l’URL rewriting. Nous pouvons maintenant continuer 🙂

Créer un contrôleur

Créez un nouveau fichier, sauvegardez-le dans application/controllers et nommez le index.php Dans ce fichier, ajoutez ce code :

[php]

<?php if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);

class Index extends CI_Controller {
public function __construct()
{
// Obligatoire
parent::__construct();

}

public function index()
{
$this->load->view(‘index’);
}
}

[/php]

Petite explication du code: La première ligne est une simple protection qui affichera un message d’erreur si quelqu’un tente d’afficher le fichier contrôleur. Ensuite, vous créez une extension de la classe CI_Controller (pour simplifier, cela indiquera que vous créez un contrôleur). Et vous créez le constructeur (ne l’oubliez pas, sinon cela ne fonctionnera pas).

Votre URL va se composer en trois parties : le nom de domaine / le contrôleur / la méthode. Exemple : https://monsite.com/mon_contrôleur/ma_méthode Comme pour une URL « normale », l »index n’est pas obligatoire. Donc, pour tout contrôleur, si vous ne chargez aucune méthode, ce sera son index qui sera chargé.

Exemple : Le contrôleur « film » contient les méthodes « index », « liste », « ajouter ».
Si vous tapez, dans l’URL www.monsite.com/film/ajouter votre contrôleur va charger la méthode « ajouter ».
De même, si vous tapez www.monsite.com/film/liste, votre contrôleur va charger la méthode « liste ».
Par contre, si vous tapez www.monsite.com/film/, c’est la méthode « index » qui sera chargée. Maintenant, on va créer la vue qui sera appelée par le contrôleur

Créer une vue

[html]
<h1>Ceci est mon index!</h1>;

Voici la première ligne de texte de votre vue

Page chargée en <strong>{elapsed_time}</strong> secondes
[/html]

Maintenant, si je charge la page https://127.0.0.1/tuto_codeigniter/, vous obtiendrez ceci (voir l’illustration 1) :

première page

Illustration 1

Félicitations ! Vous avez créé votre première page ! 🙂 Imaginons que vous souhaitiez créer la page « contact » sur le même contrôleur, comment allez-vous vous y prendre ? Tentez de faire l’exercice.  Indice : Vous devez créer une vue et modifier le contrôleur. Vous avez terminé l’exercice ?

Afficher la correction

Ne trichez pas, hein ? 😉 Donc, pour le contrôleur, on ajoute simplement une méthode à la classe Index :

[php]

public function contact() { $this->load->view(‘contact’); }

[/php]

Et enfin dans le dossier view, vous devez juste créer un fichier contact.php, ou du nom que vous désirez, tant qu’il se retrouve dans la méthode.

[html] <h1>Contact</h1> Vous trouverez ici les informations pour me contacter [/html]

Et le tour est joué ! 🙂 Si vous rencontrez un problème, n’hésitez pas à poser des questions.

Vous savez donc créer un contrôleur et ajouter des pages ! 😀

Oui mais … Ce n’est pas pratique, j’ai voulu faire un lien de mon index vers mon contact et je dois taper tout ça : https://127.0.0.1/tuto_codeigniter/index/contact ! Quand je vais mettre mon site en ligne, je vais devoir tout changer, tu n’as pas plus simple ?
Ne vous en faites pas ! Il y a effectivement plus simple, mais pour cela on va devoir charger un helper. Et ça, c’est pour le prochain cours 😉

Allez, je vous ai assez fait travailler pour aujourd’hui. N’hésitez pas à vous amuser à créer d’autres pages, d’autres contrôleurs.

À la semaine prochaine pour la suite ! Et attendez-vous à du costaud ! 😉 Et comme à l’habitude, n’hésitez pas à poser vos questions ou faire des remarques.

2 Comments

  1. Bonjour, tout d’abord merci, vos tutos sont géniaux !
    Les avez vous abandonnés ?

  2. Bonjour,
    Merci.
    Je reste un peu sur ma faim ;o)
    A quand la suite ??

Submit a Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.