Bonjour, je viens de mettre a jour wamp ( la version 1.4.3 ) et ma fonction autoload ne fonctionne plus ( je n'ai rien changer hormis le fait que j'ai garder apache 1.3.33 fournit de base alors que j'étais en 2.0.52..mais je ne vois pas pourquoi cela viendrait de la...)
le message d'erreur est le suivant
Warning: __autoload(classe/XSLTprocessor.php) [function.--autoload]: failed to open stream: No such file or directory in blablabla
la ligne ou l'erreur se produit est celle-ci
class vue extends XSLTprocessor implements iVue { blabla }
toutes les classe que moi je construit fonctionne grace a l'autoload, par contre il semblerait qu'il cherche également dans mon repertoire perso de classe les classes interne de php ( ici XSLTprocessor, une classe dont je ne suis pas l'auteur et que j'ai besoin pour mes transformation xslt... )
au cas ou, voici ma fonction autoload egalement
function __autoload($classe) { if ($classe{0}=='i') { require_once('interface/'.$classe.'.php'); } else { require_once('classe/'.$classe.'.php'); } }
Et ton interface iVue est-elle bien chargée ? Ensuite je ne comprend pas ta ligne dans ton if : $classe{0} , que veux-tu faire avec ça ? Et quel résultat dois-tu en tirer si tout fonctionnait normalement ?
interface iVue { function transforme($document,$style); function AjusteXml(); function CreerPage(); }
j'ai mis un echo dedans, mais il n'arrive pas jusqu'a la ( il s'arrete a XSTproccessor... ) d'ailleur je suis pas convaincu qu'un echo peut etre afficher dans une interface puisque c'est juste pour "repecter" une norme ( j'ai peut etre mal compris l'utilité des interfaces... )
mon test sur le premier caratere de ma classe me permet de différencier les repertoires pour ce qui est interface et pour ce qui est classe
Par nomenclature toute mes interfaces commencent par la lettre 'i' et aucune classe ne commence par cette lettre du coup
Oui donc au fait tu récupères la première lettre de la variable $classe... Je ne connsaissais pas cette méthode, je viens de la découvrir en allant voir la doc php pour substr() Enfin bref, ça ne règle pas nos problèmes, j'ai vu que pour utiliser autoload, tu dois utiliser la fonction class_exists($taclass), l'as-tu fait ?
euh non, j'utilise pas cette fonction ( et avant non plus... ?! ) pour moi, cette fonction est complémentaire mais pas nécessaire ( dans mon cas )
ma classe vue a bien était identifié par autoload puisque qu'il lit le fichier vue.php qui contient ma classe vue
en résumé, j'ai un fichier source qui définit mes connections de base de donnée, mon autoload et tout ce que j'appellerai les "truk autour" il appelle une class ( qui s'appelle vue ) grace a l'autoload, vue.php est lu et c'est la que ca plantotte...extends de XSTprocessor est considérer comme si c'était une class non charger qu'il faut traité avec autoload
j'ai ajouter ceci au debut de mon fichier autoload
if ( !class_exists('XSLTprocessor')) echo 'bob=>pas bon'; else echo 'bob=>bon';
et il me dit : bob=>pas bon comme si XSLTprocessor n'exister pas et qu'il fallait le définir....
NB : merci de me donner un coup de main ( surtout en periode de fetes ), j'apprecie beaucoup
lol, oui, c'était tout con .... en faisant la mise a jour de wamp il n'a pas gardé mon ancien php.ini.et comme pour moi, il le gardait forcement, je cherchais ailleur..... ( vais devoir changer deux trois truk dans mon php.ini...si je les retrouve, c'est le seul fichier ou je n'ai pas de sauvegarde )
en tout cas, grand merci car j'était en train de comparer tous les fichiers un à un ( en finissant par le bon evidemment )
je l'ai toujours su : "deux cerveau c'est mieux qu'un..." et "qd c'est anormal toujours remettre en question ce qui a priori va de soi "