Maison  >  Article  >  développement back-end  >  Comment puis-je automatiser l'inclusion d'en-têtes et de pieds de page dans les vues CodeIgniter ?

Comment puis-je automatiser l'inclusion d'en-têtes et de pieds de page dans les vues CodeIgniter ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 00:08:30458parcourir

How Can I Automate Header and Footer Inclusion in CodeIgniter Views?

Automatiser l'en-tête et le pied de page dans CodeIgniter

Le processus de chargement des vues par défaut de CodeIgniter nécessite la tâche répétitive consistant à inclure des vues d'en-tête et de pied de page dans chaque contrôleur. Cela peut devenir fastidieux et prendre du temps lorsque vous travaillez avec plusieurs contrôleurs et vues.

Pour résoudre ce problème, une classe de chargeur personnalisée peut être créée pour automatiser le processus d'inclusion des vues d'en-tête et de pied de page. Cela permet aux développeurs de charger des vues sans appeler explicitement la méthode load->view() pour chaque composant.

Classe de chargeur personnalisé

Créez un nouveau fichier nommé MY_Loader.php dans l'application/core annuaire. Ce fichier étendra la classe CI_Loader de CodeIgniter et ajoutera une nouvelle méthode template().

<code class="php">// application/core/MY_Loader.php

class MY_Loader extends CI_Loader {
    public function template($template_name, $vars = array(), $return = FALSE) {
        $content  = $this->view('templates/header', $vars, $return);
        $content .= $this->view($template_name, $vars, $return);
        $content .= $this->view('templates/footer', $vars, $return);

        if ($return) {
            return $content;
        }
    }
}</code>

Dans la méthode template() :

  • Il charge la vue d'en-tête dans le $ variable de contenu.
  • Il charge ensuite la vue spécifiée (par exemple, le corps) dans $content.
  • Enfin, il charge la vue de pied de page et l'ajoute à $content.
  • Si $return est défini sur TRUE, il renvoie le contenu combiné ; sinon, il affiche la vue combinée.

Utilisation dans les contrôleurs

Après avoir créé la classe de chargeur personnalisée, mettez à jour le constructeur dans vos contrôleurs pour charger le chargeur étendu :

<code class="php">class My_Controller extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load = new MY_Loader();
    }
}</code>

Maintenant, vous pouvez charger vos vues avec la méthode template() :

<code class="php">$this->load->template('body');</code>

Cela chargera automatiquement les vues d'en-tête, de corps et de pied de page. Vous pouvez également transmettre des variables aux vues selon vos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn