CodeIgniter chargement automatique des classes spécifiques
J'ai créé deux contrôleurs, le Public_Controller et la Admin_Controller à l'intérieur de ./application/bibliothèques dossier, à la suite de Phil Esturgeon exemple.
Ce que je veux faire est de charger automatiquement le Public_Controller et Admin_Controller en particulier, j'ai donc créé ce autoload fonction à l'intérieur ./application/config.php
function __autoload($class) {
//Autoload only Public_Controller and Admin_Controller
if (strpos($class, 'CI_') !== 0) {
$file = APPPATH . 'libraries/'. $class .'.php';
if ( file_exists($file) && is_file($file) ) {
@include_once($file);
}
}
}
Le problème avec ce que je pense, c'est que j'ai plus de fichiers inclus dans le dossier libraries, de sorte que celles-ci aussi sont chargées automatiquement, ce qui n'est pas ce que je veux. Donc à la place j'ai essayé de faire un petit changement à la première instruction if, comme ceci:
if ( in_array($class, array('Public_Controller, Admin_Controller')) ) //instead of strpos
afin de cibler uniquement de ces deux classes, mais cela ne semble pas fonctionner. Les idées de ce que je pourrais faire de mal?
OriginalL'auteur Lykos | 2014-03-07
Vous devez vous connecter pour publier un commentaire.
Aller à
applications/config/autoload.php
et de là, vous pouvez modifier ce que vous avez besoin.Ils sont dans les tableaux et séparés par des
packages
,libraries
,helpers
,config
,languages
etmodels
.par exemple
OriginalL'auteur Albzi
Je voulais seulement à chargement automatique
Public_Controller
dans le frontend etAdmin_Controller
dans l'admin, doncautoload.php
est. Dansautoload.php
les fichiers sont chargés dans le monde. Le__autoload()
fonction cherche seulement à chargement automatique d'une classe lorsqu'elle est appelée, mais pas trouvé.$this->load->model('Model_name');
à l'intérieur du contrôleur que vous souhaitez.OriginalL'auteur Lykos
il n'est pas nécessaire d'écrire la fonction autoload
codeigniter possède son propre fichier pour auo chargement de fichiers comme les bibliothèques et l'aide
Vous pouvez ajouter le nom de la classe il y a dans le tableau
Le nom du fichier doit être "autoload.php" dans l'application/config/répertoire
OriginalL'auteur Snehal S
U n'avez pas besoin d'écrire la fonction autoload ..codeiniter a un ibuilt dunction pour le chargement automatique de fichiers spécifiques ...
aller à applications/config/autoload.php ther u peut ajouter votre fichier spécifique dans le tableau
autoload suppose que vous avez mis votre bibliothèque personnalisée dans le dossier de la bibliothèque fournie par Codeigniter.
est mon code de droit?
OriginalL'auteur Mohan
Vous pouvez utiliser votre méthode.
__autoload()
sera PAS charger d'autres classes automatiquement. Parce que, selon la doc PHP,__autoload()
— Tentative de chargement d'undefined
classe. Vos fichiers de classe sera inclus automatiquement lorsque vous appelez (init) sans ces fonctions: "include, include_once, require, require_once".Donc pas besoin de s'inquiéter que les autres classes automatiquement.
OU
Vous pouvez utiliser le Codeigniter est construit dans autoload fonctionnalité
Espère que cela aide 🙂
J'ai des problèmes avec ", Vous trouverez des instructions dans ce fichier correspondant à chaque type d'élément." j'ai besoin d'un chargeur automatique pour les contrôleurs, ce qui n'est pas pris en charge.
OriginalL'auteur Ijas Ameenudeen