Maison >php教程 >PHP开发 >Notes d'étude CodeIgniter Item9 - Bibliothèque de classes dans CI

Notes d'étude CodeIgniter Item9 - Bibliothèque de classes dans CI

黄舟
黄舟original
2016-12-29 10:34:181229parcourir

Bibliothèque de classes CodeIgniter

Tous les fichiers de bibliothèque de classes sont stockés dans le dossier système/bibliothèques. Dans la plupart des cas, vous devez les initialiser dans le contrôleur avant de pouvoir les utiliser :

[code]$this->load->library('class name');

class name est le nom de classe que vous souhaitez utiliser. Par exemple, pour charger la « Classe de validation de formulaire », vous pouvez faire ceci :

[code]$this->load->library('form_validation');

Créez votre fichier bibliothèque de classes

Votre fichier bibliothèque de classes doit être enregistré Dans le dossier application/bibliothèques, CodeIgniter les recherchera et les initialisera dans ce dossier.

Convention de dénomination

La première lettre du nom du fichier est en majuscule. Par exemple : Myclass.php

La première lettre de la déclaration de classe est en majuscule. Par exemple : class Myclass

Le nom de la classe et le nom du fichier doivent être identiques.

Toutes les classes doivent avoir un prototype de base

[code]<?php if (!defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);
class Someclass {
    public function some_function()
    {
    }
}
/* End of file Someclass.php */

Dans toutes les fonctions du contrôleur, vous pouvez initialiser votre classe de la manière standard suivante :

[code]$this->load->library(&#39;someclass&#39;);

Lorsque someclass est le nom du fichier, il n'est pas nécessaire d'ajouter l'extension ".php". Le nom ici n'est pas sensible à la casse

Une fois votre classe personnalisée chargée, vous pouvez appeler la classe de la manière suivante, n'oubliez pas d'utiliser des noms en minuscules :

[code]$this->someclass->some_function();  // 对象的实例名永远都是小写的

Lors de l'initialisation de la bibliothèque de classes, vous pouvez passer dynamiquement le tableau à la classe via le deuxième paramètre . Dans le constructeur :

[code]$params = array(&#39;type&#39; => &#39;large&#39;, &#39;color&#39; => &#39;red&#39;);
$this->load->library(&#39;Someclass&#39;, $params);

Lorsque vous utilisez cette fonctionnalité, vous devez ajouter des paramètres au constructeur de classe :

[code]<?php if (!defined(&#39;BASEPATH&#39;)) exit(&#39;No direct script access allowed&#39;);
class Someclass {
    public function __construct($params)
    {
        // Do something with $params
    }
}
?>

.
Pour accéder aux ressources originales de CodeIgniter dans votre bibliothèque de classes personnalisées, vous devez utiliser la fonction get_instance(). De manière générale, dans votre fonction de contrôleur, vous pouvez appeler n'importe quelle fonction CodeIgniter disponible via $this :

[code]$this->load->helper(&#39;url&#39;);
$this->load->library(&#39;session&#39;);
$this->config->item(&#39;base_url&#39;);

Lorsque vous souhaitez utiliser la classe originale CodeIgniter dans une classe personnalisée, vous pouvez faire ceci :

Tout d'abord, définissez l'objet CodeIgniter et affectez-le à une variable :

[code]$CI =& get_instance();

Une fois que vous avez défini un objet en tant que variable, vous pouvez utiliser ce nom de variable Remplacer $this :

[code]$CI =& get_instance();
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');

Remplacer la classe d'origine

Nommez simplement votre propre classe de la même manière que la classe d'origine pour que CodeIgniter utilise la nouvelle classe. Pour utiliser cette fonctionnalité, le nom de fichier et la déclaration de classe doivent être exactement les mêmes que la classe d'origine. Par exemple, pour remplacer la bibliothèque de classes Email d'origine. Vous devez créer un fichier application/libraries/Email.php, et déclarer les classes comme suit :

[code]class CI_Email 
{
}

Extendre les classes existantes

si besoin Quand en ajoutant une ou deux nouvelles fonctionnalités à une bibliothèque de classes, il n'est pas nécessaire de remplacer l'intégralité du fichier de bibliothèque de classes. Vous pouvez simplement étendre (hériter) de la classe existante. Étendre une classe revient à ajouter des exceptions à la classe :
<.>La classe étendue doit déclarer qu'elle est étendue à partir de la classe parent.

Le fichier contenant la classe nouvellement étendue doit être préfixé par MY_ (cette option est configurable).

Par exemple, pour étendre la classe Email d'origine, vous devez créer le fichier application/libraries/MY_Email.php et le déclarer dans le fichier comme suit :


[code]class MY_Email extends CI_Email 
{
}

Pour charger une sous-classe d'extension, vous devez utiliser un nom de caractère standard. Veuillez ne pas utiliser de préfixe. Par exemple, pour charger la sous-classe d'extension de courrier électronique mentionnée ci-dessus, vous devez écrire :

[code]$this->load->library(&#39;email&#39;);


Ce qui précède est le contenu des notes d'étude de CodeIgniter Item9 - la bibliothèque de classes de CI. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn. )!


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