Autoloader qui foire

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour / bonsoir !

Je dois me frotter à du Laravel 4.2 ces temps, pour améliorer un site déjà existant et le migrer sur un autre serveur. Je le récupère en local depuis l'hébergement (où il fonctionne), je modifie les accès BDD et je l'importe, ça tourne sans souci.
Mais une fois en ligne sur le serveur final, BAM ! Impossible de charger une des classes — la dernière de la liste des providers, classe custom placée dans un namespace PSR-4 commençant à la racine de /app.

Là, j'avoue que je suis dépassé. J'ai tenté :

  • de changer la casse des dossiers et des fichiers ;
  • de purger les caches ;
  • de traquer des informations de chargement automatique dans le code ;
  • de re-générer l'autoloader (composer dump-autoload), sachant que le composer.json comprend bien l'instruction PSR-4 pour l'espace de nom.

Ma version de PHP en local est la 5.6.10 SAPI Aache, en distant, c'est la 5.6.17 SAPI (F?)CGI. J'ai comparé les phpinfos, mais je me rends compte que je ne vois pas quoi chercher… principalement parce que ne saisis pas quel éventuel module pourrait faire qu'une classe se charge quelque part, mais pas ailleurs, alors que les autres classes sont chargées sans souci partout.

Tout au plus, je sais que l'ancien développeur a eu le même souci à une époque (lié à la recherche menée au troisième point), mais évidemment, il n'est plus joignable…

Est-ce que quelqu'un a déjà eu ce genre de souci et pourrait me faire part de ses pistes ?

Merci d'avance  :)

Édité par Ymox

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Auteur du sujet

Auto-réponse — merci à l'ancien développeur qui m'a mis sur la piste  :)

La cohérence entre la déclaration du namespace et le nom des dossiers ne correspondait pas aux normes PSR-4, pas plus que la déclaration du namespace dans le composer.json : le namespace avait des capitales au début de chaque élément, les noms de dossiers ne l'avaient pas, et la déclaration dans composer suivait les dossiers. Du coup, avec le nouvel hébergement plus tatillon sur la casse, Composer ne s'en sortait pas. J'ai donc mis une capitale aux noms des dossiers et surtout ai corrigé la déclaration de la racine dans composer.json.

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte