Partage
  • Partager sur Facebook
  • Partager sur Twitter

Autoloader en php

    19 janvier 2017 à 11:04:21

    Bonjour, j'aimerais un petit coup de main je comprends vraiment pas mon erreur. J'essaie d'autoloader mes classes en php. 
    Voici l'arboressence de mon code :

     

    Dans le index.php je fais cela : 

    Toutes mes classes sont dans le dossier app.
    J'utilise les namespace comme ceci: 
    Si une classe se situe à la racine du dossier app je fais :  

    Et si elle se situe dans le dossier app/table je fais : 

    Cependant, j'ai une erreur lorsque je compile, il cherche une classe App.php dans le namespace App\Table : 

    Voici le code de mon autoloader : 

    En plus je comprends pas pourquoi il va essayer de charger la classe App\Table\App alors qu'elle existe pas... Le echo de l'autoloader affiche ça : 


    Et j'ai bien vérifié tous mes namespaces sont comme je l'ai précisé plus haut, toutes les classes ont le bon nom etc... 
    Voilà si quelqu'un peut prendre un temps pour essayer de comprendre et m'expliquer car là je bloque ... Merci !! 

    • Partager sur Facebook
    • Partager sur Twitter
      19 janvier 2017 à 12:52:26

      Salut, tu aurais pas un soucis de \ au lieu de / ? ton warning indique: app/Table\App.php
      • Partager sur Facebook
      • Partager sur Twitter
      mon skype: ptitboy05@live.fr
        20 janvier 2017 à 14:47:58

        Non regarde même si je corrige j'ai toujours l'erreur ... 

        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2017 à 15:08:54

          Déjà ton code va planter sur Unixoïde, la casse n'est pas respectée (app vs App, table vs Table).

          Il faudrait voir tes instanciations (+ use + namespace courant), c'est peut être tout simplement eux qui sont faux.

          D'ailleurs, pourquoi ne pas simplement écrire : require __DIR__. '/../' . str_replace('\\', '/', $class) . '.php'; dans l'autoload ? Il n'y a pas besoin de strpos ni ces str_replace.

          PS : / est portable, pas la peine de se casser le tronc à chercher à utiliser autre chose (\ sous Windows)

          -
          Edité par julp 20 janvier 2017 à 15:34:03

          • Partager sur Facebook
          • Partager sur Twitter

          Autoloader en php

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown