Pages statiques¶
Remarque: Ce tutoriel suppose que vous avez téléchargé CodeIgniter et installé le framework dans votre environnement de développement.
La première chose que vous allez faire est de configurer un contrôleur pour gérer les pages statiques. Un contrôleur est simplement une classe qui aide à déléguer work.It est la colle de votre application web.
Par exemple, lorsqu’un appel est passé à:
On pourrait imaginer qu’il existe un contrôleur nommé « news ». La méthode appelée sur les nouvelles serait « dernière ». Le travail de la méthode des nouvelles pourrait consister à enregistrer 10 nouvelles et à les afficher sur la page. Très souvent dans MVC, vous verrez des modèles d’URL qui correspondent:
À mesure que les schémas d’URL deviennent plus complexes, cela peut changer. Mais pour l’instant, c’est tout ce que nous aurons besoin de savoir.
Créez un fichier dans application/controllers/Pages.php avec le code suivant.
<?phpclass Pages extends CI_Controller { public function view($page = 'home') { }}
Vous avez créé une classe nommée Pages
, avec une méthode view qui accepte un argument nommé $page
. La classe Pages
étend la classe CI_Controller
. Cela signifie que la nouvelle classe pages peut accéder aux méthodes et aux variables définies dans la classe CI_Controller
(system/core/Controller.php).
Le contrôleur est ce qui deviendra le centre de chaque requête de notre application web. Dans les discussions très techniques de CodeIgniter, il est peut-être appelé le super objet. Comme toute classe php, vous vous référez à it dans vos contrôleurs comme $this
. Se référant à $this
, c’est commentvous chargerez des bibliothèques, des vues et commanderez généralement le framework.
Maintenant que vous avez créé votre première méthode, il est temps de créer quelques exemples de pagetemplates de base. Nous allons créer deux « vues » (modèles de page) qui agissent comme notre pied de page et notre en-tête de page.
Créez l’en-tête dans application/views/templates/header.php et addle code suivant:
<html> <head> <title>CodeIgniter Tutorial</title> </head> <body> <h1><?php echo $title; ?></h1>
L’en-tête contient le code HTML de base que vous voudrez afficher avant de charger la vue principale, ainsi qu’un en-tête. Il affichera également la variable $title
, que nous définirons plus tard dans le contrôleur.Maintenant, créez un pied de page dans application / vues / modèles / pied de page.php qui comprend le code suivant:
<em>© 2015</em> </body></html>
Ajout d’une logique au contrôleur¶
Vous avez précédemment configuré un contrôleur avec une méthode view()
. La méthodeaccepte un paramètre, qui est le nom de la page à charger. Les modèles de page statiques seront situés dans le répertoire application/views/pages/.
Dans ce répertoire, créez deux fichiers nommés home.php et à propos.php.Dans ces fichiers, tapez du texte – tout ce que vous souhaitez − et enregistrez-les.Si vous aimez être particulièrement peu original, essayez « Bonjour le monde! ».
Pour charger ces pages, vous devrez vérifier si la page demandée existe réellement:
public function view($page = 'home'){ if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); } $data = ucfirst($page); // Capitalize the first letter $this->load->view('templates/header', $data); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer', $data);}
Maintenant, lorsque la page existe, elle est chargée, y compris l’en-tête et le pied de page, et affichée à l’utilisateur. Si la page n’existe pas, une erreur « 404Page introuvable » s’affiche.
La première ligne de cette méthode vérifie si la page existe réellement.La fonction file_exists()
native de PHP est utilisée pour vérifier si le fichier est là où il devrait être. show_404()
est une fonction CodeIgniterfunction intégrée qui affiche la page d’erreur par défaut.
Dans le modèle d’en-tête, la variable $title
a été utilisée pour personnaliser le titre de la page. La valeur de title est définie dans cette méthode, mais au lieu d’affecter la valeur à une variable, elle est affectée à l’élément title dans le tableau $data
.
La dernière chose à faire est de charger les vues dans la commandeils doivent être affichés. Le deuxième paramètre de la méthode view()
estutilisé pour transmettre des valeurs à la vue. Chaque valeur du tableau $data
estattribuée à une variable avec le nom de sa clé. Ainsi, la valeur de $data
dans le contrôleur est équivalente à $title
dans la vue.
Routage¶
Le contrôleur fonctionne maintenant ! Pointez votre navigateur sur index.php/pages/view
pour voir votre page. Lorsque vous visitez index.php/pages/view/about
, vous verrez la page à propos, y compris à nouveau l’en-tête et le pied de page.
En utilisant des règles de routage personnalisées, vous avez le pouvoir de mapper n’importe quel URI sur anycontroller et une méthode, et de vous libérer de la convention normale:http://example.com///
Faisons ça. Ouvrez le fichier de routage situé àapplication/config/routes.php et ajoutez les deux lignes suivantes.Supprimez tout autre code qui définit un élément du tableau $route
.
$route = 'pages/view';$route = 'pages/view/';
CodeIgniter lit ses règles de routage de haut en bas et achemine therequest vers la première règle correspondante. Chaque règle est une expression régulière (côté gauche) mappée à un nom de contrôleur et de méthode séparés par des barres obliques (côté droit). Lorsqu’une requête arrive, CodeIgniter recherche le firstmatch et appelle le contrôleur et la méthode appropriés, éventuellement witharguments.
Plus d’informations sur le routage peuvent être trouvées dans la documentation de routage URI.
Ici, la deuxième règle du tableau $route
correspond à toute requête utilisant la chaîne générique (:any)
. et passe le paramètre à la méthode view()
de la classe Pages
.
Visitez maintenant index.php/about
. A-t-il été correctement acheminé vers la méthode view()
dans le contrôleur de pages? Fantastique!