Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2007, 19h47   #1
Membre du Club
 
Inscription : janvier 2004
Messages : 157
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 157
Points : 57
Points : 57
Envoyer un message via MSN à Slade991
Par défaut [POO] problème d'instanciation automatique de classe

Bonjour,
je post parcque la vraiment je sèche....

J'ai tout virer dans mon index pour faire du débugging et je n'ai plus que :

Code :
1
2
3
4
5
6
	function __autoload($class_name)
	{	
		require_once "classes/".$class_name.".class.php" ;	
	}	
 
	$obj = new Accounts() ;
En local tout marche très bien. Dès que je met en ligne j'ai droit à :

Citation:
Cannot instantiate non-existent class
Et alors franchement je comprend pas...
J'ai essayer avec un lien absolu, avec un lien partant de la racine (../www/admin/classes ou même ../admin/classes)
j'ai essayer la nomenclature unix /classes/
J'ai essayer avec include, require, require_once
Toujours la même erreur...

Alors je me suis dit que ca devait venir de la version de php (php4 oui php5 oui donc peut être php4 de base ?) mais quand je met la classe dans ce fichier, ca marche bien.
Donc le problème vient de ma fonction __autoload, mais je comprend pas...
Le dossier classes est bien là, les classes aussi..

Si quelqu'un a une idée parcque la franchement....
Merci.
Slade991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 22h57   #2
Membre actif
 
Inscription : janvier 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : janvier 2006
Messages : 149
Points : 186
Points : 186
Bonjour,

Et bien, méthode habituelle : remplace le require_once par echo, pour voir ce que ça te retourne ...

Après, tu détruis le fichier de ta classe, tu le ré up', puis tu réessayes...

Si ça ne fonctionne toujours pas, tu réessayes dans un nouveau répertoire ...

Y'a sûrement une petite brindille qui empêche tout ce beau monde de fonctionner !
Vell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 23h21   #3
Membre du Club
 
Inscription : janvier 2004
Messages : 157
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 157
Points : 57
Points : 57
Envoyer un message via MSN à Slade991
Déjà tout essayer ^^
Quand je met un echo ca n'affiche rien même un echo "ok"
deja essaye de sup reup, dejà essaye de virer le dossier et de foutre en vrac,
déjà essayer de virer les .class.

C'est chiant de pas trouver ce que c'est la petite brindille :p
Slade991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 00h18   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Assurez-vous avant tout qu'il s'agit bien d'une version 5 (à vérifier par un phpinfo ou bien en affichant la constante PHP_VERSION / fonction phpversion dans votre script). Un certain nombre d'hébergeurs proposent (proposaient ?) les deux versions, la version 4 étant généralement employée par défaut.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 01h50   #5
Membre du Club
 
Inscription : janvier 2004
Messages : 157
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 157
Points : 57
Points : 57
Envoyer un message via MSN à Slade991
C'étais un peu ce que je pensais.
Mais la version 4 ne supporte pas l'objet non ?
Car en mettant la classe dans le fichier index ca marche, c'est ce qui m'a fait écarter cette idée.
Enfin je vais essayer merci.
Slade991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 05h49   #6
Membre du Club
 
Inscription : novembre 2006
Messages : 61
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2006
Messages : 61
Points : 42
Points : 42
Envoyer un message via MSN à gandalf76fr Envoyer un message via Skype™ à gandalf76fr
La version 4 gère une partie de l'objet à ce que j'ai compris.

Je ne peut rien garantir, je suis hélas encore un vieux crouton en procédurale (qui envisage de passer à l'objet sans bien arriver à l'apréhender mais bon ...)
gandalf76fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 11h15   #7
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par gandalf76fr
La version 4 gère une partie de l'objet à ce que j'ai compris.
Oui la POO existait déjà en PHP 4 (et avant) mais a subi de très nombreuses "améliorations" à la version 5 (prendre un cours ou la documentation officielle pour tous les détails). Les classes développées pour une version 4 fonctionnent sur une version 5 (compatibilité ascendante voulue) par contre l'inverse ne serait pas possible puisque de nouveaux mots-clé ont été introduits que PHP 4 ne reconnaitrait pas, notamment sur la visibilité des attributs, et qui conduiraient à une erreur fatale sur cette version (ce qui est logique).

Tout dépend donc comment a été écrit votre classe et de la version de PHP l'interprétant ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 12h31   #8
Nouveau Membre du Club
 
Développeur Web
Inscription : avril 2006
Messages : 37
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 37
Points : 37
Citation:
Envoyé par Slade991 Voir le message
Bonjour,
J'ai essayer avec un lien absolu, avec un lien partant de la racine (../www/admin/classes ou même ../admin/classes)
j'ai essayer la nomenclature unix /classes/
J'ai essayer avec include, require, require_once
Toujours la même erreur...
ton fichier Accounts.class.php ... il porte bien la majuscule ?
Je sait pas ; tu dit avoir essayé tous les chemins possible ; mais peut être que ...

je pose juste la question hein :s
non ; patapé ! patapé !
Méthylbro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 13h26   #9
Membre du Club
 
Inscription : janvier 2004
Messages : 157
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 157
Points : 57
Points : 57
Envoyer un message via MSN à Slade991
Ojui oui il la possède bien, j'ai même essayer avec et sans la majuscule ^^
Concernant la structure de ma classe, le problème ne doit pas venir de là, étant donné que la classe dans le fichier index fonctionne.
Le problème semble venir de la fonction __autoload est-ce une nouvelle fonction non compatible php4 ?
Slade991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 13h28   #10
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par Slade991
Le problème semble venir de la fonction __autoload est-ce une nouvelle fonction non compatible php4 ?
C'est une fonctionnalité PHP 5 uniquement, d'où mon invitation à contrôler la version de PHP
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2007, 15h23   #11
Membre du Club
 
Inscription : janvier 2004
Messages : 157
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 157
Points : 57
Points : 57
Envoyer un message via MSN à Slade991
Version php : 4.4.7
Donc le problème vient bien de là ^^
Merci a vous
Slade991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h34.


 
 
 
 
Partenaires

Hébergement Web