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.
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() :
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!