Dans certains cas, vous pouvez vouloir développer des classes qui existent indépendamment de vos contrôleurs mais qui ont la capacité d'utiliser toutes les ressources de Code Igniter. Ceci est facilement réalisable en utilisant get_instance() fonctions.
Toute classe que vous instanciez dans les fonctions de votre contrôleur peut accéder aux ressources natives de Code Igniter en utilisant simplement la fonction get_instance(). Cette fonction renvoie l'objet principal de Code Igniter.
Normalement, pour appeler l'une des fonctions disponibles de Code Igniter, vous devez utiliser la fonction
$this</b> construct:
$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');
etc.
$this ne fonctionne cependant qu'à l'intérieur de vos contrôleurs, de vos modèles ou de vos vues. Si vous souhaitez utiliser les classes de Code Igniter à l'intérieur de vos propres classes personnalisées, vous pouvez procéder comme suit :
Tout d'abord, assignez l'objet Code Igniter à une variable :
$obj =& get_instance();
Une fois que vous avez assigné l'objet à une variable, vous utiliserez cette variable à la place de $this :
$obj =& get_instance();
$obj->load->helper('url');
$obj->load->library('session');
$obj->config->item('base_url');
etc.
Note : Vous remarquerez que le texte ci-dessus get_instance() est passée par référence :
$obj =& get_instance();
C'est très important. L'affectation par référence vous permet d'utiliser l'objet Code Igniter d'origine plutôt que d'en créer une copie.
Pour en savoir plus sur cette fonction, consultez le site aquí
0 votes
Veuillez lire stackoverflow.com/a/63914758/2943403 pour comprendre pourquoi il ne faut pas écrire
=&
n'importe où dans votre projet.