Maison > développement back-end > tutoriel php > 003 - CI utilise les ressources CodeIgniter dans votre bibliothèque

003 - CI utilise les ressources CodeIgniter dans votre bibliothèque

不言
Libérer: 2023-03-23 10:10:02
original
1142 Les gens l'ont consulté


Utilisez la fonction get_instance() dans votre bibliothèque de classes pour accéder Ressource native de CodeIgniter, cette fonction renvoie le super objet CodeIgniter.

Normalement, dans vos méthodes de contrôleur, vous utiliseriez $this pour appeler tous les disponibles Méthodes CodeIgniter :


$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');
// etc.
Copier après la connexion

Mais $this ne peut être utilisé que directement dans votre contrôleur, modèle ou vue, si vous voulez l'utiliser dans votre propre classe CodeIgniter, vous pouvez procéder comme suit :

Tout d'abord, affectez l'objet CodeIgniter à une variable :

$CI =& get_instance();
Copier après la connexion

Une fois que vous avez attribué l'objet CodeIgniter à une variable, vous pouvez utilisez cette variable pour remplacer par $this

$CI =& get_instance();

$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');
// etc.
Copier après la connexion


Remarque :

Vous verrez ci-dessus get_instance() Fonctions sont passés par référence :


$CI =& get_instance();
Copier après la connexion

C'est très important, l'affectation de référence vous permet d'utiliser l'objet CodeIgniter d'origine au lieu de créer une copie.


Puisque la bibliothèque de classes est une classe, nous ferions mieux d'utiliser pleinement les principes de la POO. Par conséquent, afin de permettre à toutes les méthodes de la classe d'utiliser le super objet CodeIgniter. est recommandé de l'attribuer à Un attribut :

class Example_library {

    protected $CI;

    // We'll use a constructor, as you can't directly call a function
    // from a property definition.
    public function __construct()
    {
        // Assign the CodeIgniter super-object
        $this->CI =& get_instance();
    }

    public function foo()
    {
        $this->CI->load->helper('url');
        redirect();
    }

    public function bar()
    {
        echo $this->CI->config->item('base_url');
    }

}
Copier après la connexion

Recommandations associées :

002 - Différences et choix entre PDO et MySQLi

001 - Analyse détaillée de l'utilisation des PDO

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal