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 :

fonction__autoload pour la POO


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut fonction__autoload pour la POO
    Bonjour,

    plusieurs questions à propos de cette fonction (je débute en POO) :

    - D'abord j’ai lu ça : La fonction spl_autoload_register() fournit une alternative plus flexible pour le chargement automatique de classes. Pour cette raison, l'utilisation de la fonction __autoload() n'est plus encouragée et pourrait devenir obsolète, voire être supprimée dans le futur.
    Mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     function spl_autoload_register($class_name) { // appelée dès qu'une classe est pas trouvée
    //function __autoload($class_name) { // appelée dès qu'une classe est pas trouvée
    require(strtolower($class_name)."_class.php"); //strtolower pour unix
    }
    Provoque une erreur :
    Fatal error: Cannot redeclare spl_autoload_register() in D:\divers\boulot\formation_PHPPOO\index.php on line 5
    que faut-il en penser ?

    - cette fonction est placée dans le index.php de mon application ; est-ce que ça suffit pour qu'elle soit appelée dès lors que n'importe où on souhaite utiliser une classe qui n'est pas encore définie ?

  2. #2
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Il faut pensé que tu a re-déclaré la fonction spl_autoload_register qui existe déjà...

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Ca, je l'avais compris ! Mais comme je viens de découvrir l'existence de cette fonction, je ne l'ai pas définie ailleurs...
    Et au sujet de ma 2e question ?

  4. #4
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Ca, je l'avais compris ! Mais comme je viens de découvrir l'existence de cette fonction, je ne l'ai pas définie ailleurs...
    Et au sujet de ma 2e question ?
    Ben il faut que tu utilise la fonction spl_autoload_register et non que tu la définisse...

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Donc, comme ça marchait avant, il ne faut pas simplement remplacer __autoload ?

  6. #6
    Membre actif Avatar de John Blobsmith
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 198
    Points : 223
    Points
    223
    Par défaut
    Non ça fonctionne comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function my_autoloader($class) {
        include 'classes/' . $class . '.class.php';
    }
     
    spl_autoload_register('my_autoloader');
    voir la doc :
    http://fr2.php.net/manual/fr/functio...d-register.php

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    J'imagine que tu essayes de faire un autoload sur une classe déjà chargée via include par exemple...

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

Discussions similaires

  1. Bonnes pratiques pour la POO en Javascript
    Par piemur2000 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/10/2013, 15h33
  2. Tout changer pour la POO
    Par novphp dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2009, 07h38
  3. aide pour la POO
    Par yorukaze dans le forum Général Python
    Réponses: 8
    Dernier message: 04/01/2008, 10h42
  4. [POO] doc pour comparaison POO entre PHP4 et PHP5
    Par mic79 dans le forum Langage
    Réponses: 4
    Dernier message: 19/01/2007, 15h40
  5. Methodologie pour la POO
    Par afrikha dans le forum Méthodes
    Réponses: 5
    Dernier message: 26/11/2005, 03h15

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