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 :

Autoload qui me fait pleurer


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Par défaut Autoload qui me fait pleurer
    Bonjour

    sur ma page index je lance une class CONTROLLER créée dynamiquement... jusque la tout va bien
    J'arrive même à la charger avec mon autoload

    Mais comme la classe controller est généré à partir des param de l'url... je voulais faire le test si le fichier existe charge la class sinon message d'erreur (exception).


    Si je ne vérifie rien cela marche (sauf si la class n'existe pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Autoloader{
     
        static function register(){
    		spl_autoload_register( array( __CLASS__, 'autoload' ) );
    	}
     
        static function autoload( $class ){
    		$folder = explode( "_", $class );
    		include $folder[0] . '/' . $class . '.php';
    		}
     
    }

    Si je tente de vérifier plus rien ne marche même les class qui fonctionnaient sans controle ne marchent plus alors que le fichier existe bien....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Autoloader{
     
        static function register(){
    		spl_autoload_register( array( __CLASS__, 'autoload' ) );
    	}
     
        static function autoload( $class ){
    		$folder = explode( "_", $class );
    		is_file($folder[0] . '/' . $class . '.php') ? include $folder[0] . '/' . $class . '.php' : '';
    		}
     
    }
    Je ne comprend plus rien.....

    Il charge un fichier, mais si je lui demande de vérifier si le fichier existe il ne charge plus alors que le fichier existe....

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    Bonsoir

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (file_exists($folder[0] . '/' . $class . '.php')) ? include $folder[0] . '/' . $class . '.php' : '';

  3. #3
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Par défaut
    cela ne change rien... j'ai toujours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Uncaught Error: Class 'Controller...
    alors que si j'inclus sans vérifier cela marche

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Par défaut
    et sinon pourquoi ne pas essayer avec un namespace?

  5. #5
    Membre éclairé
    Homme Profil pro
    Urbaniste
    Inscrit en
    Mai 2018
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mai 2018
    Messages : 275
    Par défaut
    oups le / devant $folder[0]

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

Discussions similaires

  1. [debutant] page html qui ne fait pas fonctionner la fonction
    Par Battosaiii dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2006, 19h25
  2. Thème qui a fait planter WinXP Pro
    Par lechewal dans le forum Windows XP
    Réponses: 2
    Dernier message: 13/02/2006, 09h23
  3. [debutant]programme qui ne fait rien.
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 10
    Dernier message: 04/12/2005, 22h19
  4. procédure stockée qui ne fait rien
    Par trotters213 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 10/03/2005, 20h25
  5. fonction qui en fait planter une autre
    Par ickis dans le forum C
    Réponses: 5
    Dernier message: 18/08/2003, 21h33

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