IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] problème d'instanciation automatique de classe


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 186
    Points : 261
    Points
    261
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 à :

    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.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 186
    Points
    186
    Par défaut
    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 !

  3. #3
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 186
    Points : 261
    Points
    261
    Par défaut
    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

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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.

  5. #5
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 186
    Points : 261
    Points
    261
    Par défaut
    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.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 64
    Points : 55
    Points
    55
    Par défaut
    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 ...)

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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 ...

  8. #8
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    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é !

  9. #9
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 186
    Points : 261
    Points
    261
    Par défaut
    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 ?

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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

  11. #11
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 186
    Points : 261
    Points
    261
    Par défaut
    Version php : 4.4.7
    Donc le problème vient bien de là ^^
    Merci a vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Problème de chargement d'une classe template
    Par shensi dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2007, 16h50
  2. Réponses: 6
    Dernier message: 19/05/2007, 11h04
  3. [JSP-Bean] Probléme d'instanciation d'une classe !
    Par adil_vpb dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 02/03/2007, 20h29
  4. Problème d'instanciation d'une classe
    Par Jahjouh dans le forum C++
    Réponses: 2
    Dernier message: 03/02/2007, 13h50
  5. [POO] Problème avec l'utilisation de classes.
    Par sekiryou dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 19h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo