Bonjour à tous, je souhaite un renseignement sur la syntaxe à adopté pour pouvoir redéfinir le nom d'une fonction ou peut être me conseillé une autre méthode.
En faites j'ai un script dans un dossier qui me permet de charger toutes les class contenu dans ce même dossier.
il fonctionne très bien mais si par exemple je copie ce même fichier dans un nouveau dossier en changeant simplement le tableau et bien le premier fichier de chargement charge bien le contenu du tableau mais le deuxième fichier ne charge rien du tout.
Ce qui me semble très logique puisque la fonction à déjà été implémenter ...
En gros voici mon script :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
$__magixload = array(
'test' => dirname(__FILE__).'/class.test.php'
);
function mc_autoload($name){
global $__magixload;
if (isset($__magixload[$name])) {
require_once $__magixload[$name];
}
}
if (function_exists("spl_autoload_register")) {
spl_autoload_register("mc_autoload");
}else {
function __magixload($name) {
mc_autoload($name);
}
} |
Bon ici je n'utilise pas de class, une simple fonction c'est pour cette raison que je vais définir une class qui sera appellé dans chaque fichier de racine de dossier.
J'ai commencé comme ceci :
1 2 3 4 5 6 7 8 9 10 11
| class magixload{
# autoload for magixclean
function mc_autoload($name){
global $__magixload;
if (isset($__magixload[$name])) {
require_once $__magixload[$name];
}
}
} |
En gros je doit pouvoir appellé la fonction
spl_autoload_register("mc_autoload");
a chaque fois mais redefinir ou ajouter du contenu au tableau car pour l'instant c pas la joie si plusieurs tableau.
Dison à la racine du dossier test, j'ajoute un fichier nommé _load.php avec :
1 2 3
| $__magixload = array(
'test' => dirname(__FILE__).'/class.test.php'
); |
plus instance pour l'appelle à la class de chargement.
MAis si je crée un autre dossier sous le nom de test2 avec comme tableau :
1 2 3
| $__magixload = array(
'test' => dirname(__FILE__).'/class.test2.php'
); |
Eh bien il n'est jamais intégrer ce qui est logique puisque il est déjà défini donc je doit pouvoir redéfinir la variable ou la fonction j'hésite en faites et puis la documentation sur SPL est un peu pauvre.
Et si quelqu'un sais me dire à quoi sert exactement la fonction
Partager