WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
autoload
Envoyé par: Arius Vistoon (---.fbx.proxad.net)
Date: 29 December 2004 à 13:51

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');
}
}

si vous avez une idée d'ou ca provient

Re: autoload
Envoyé par: bistory (---.243.81.adsl.skynet.be)
Date: 29 December 2004 à 15:31

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 ?

Re: autoload
Envoyé par: Arius Vistoon (---.fbx.proxad.net)
Date: 29 December 2004 à 15:40

voici mon interface iVue

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

Re: autoload
Envoyé par: bistory (---.243.81.adsl.skynet.be)
Date: 29 December 2004 à 15:59

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() smiling smiley
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 ?

Re: autoload
Envoyé par: Arius Vistoon (---.fbx.proxad.net)
Date: 29 December 2004 à 16:39

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

Re: autoload
Envoyé par: Arius Vistoon (---.fbx.proxad.net)
Date: 29 December 2004 à 16:50

j'ai supprimé l'extends
du coup ma class vue

class vue extends XSLTprocessor implements iVue
{
blabla
}

devient

class vue implements iVue
{
blabla
}

ce qui évidemment me génère une erreur que je comprend ( puisqu'il n'y a plus d'extend XSLTprocessor )

Fatal error: Call to undefined method vue::importStylesheet() in vue.php

Re: autoload
Envoyé par: bistory (---.243.81.adsl.skynet.be)
Date: 29 December 2004 à 16:54

Ah ça a l'air tout con winking smiley charge l'extension php_xsl.dll dans ton php.ini smiling smiley J'ai testé et ça a l'air de fonctionner tongue sticking out smiley

Re: autoload
Envoyé par: Arius Vistoon (---.fbx.proxad.net)
Date: 29 December 2004 à 17:26

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 "

merci encore et bonnes fetes a toa

Le Arius, qui se cache de honte, lol

Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP