Le problème que vous rencontrez n'est pas lié aux répertoires parents. En fait, votre configuration Composer.json autoload est correcte pour votre structure de répertoire.
Le problème est l'extension de fichier .inc
, incompatible avec la spécification PSR-4. Plus d'infos ici: How To Make Composer (PSR-4) To Work With ".class.php" Extension?
Si vous ne pouvez pas mettre à jour votre code source pour correspondre à la spécification PSR-4, vous pouvez utiliser Class Mapping:
Les références classmap sont tous réunis, lors de l'installation/mise à jour, en une seule key => tableau de valeur qui peut être trouvé dans le fichier généré vendor/composer/autoload_classmap.php
. Cette carte est construite en recherchant des classes dans tous les fichiers .php
et .inc
dans les répertoires/fichiers donnés.
Vous pouvez utiliser la prise en charge de la génération de classes pour définir le chargement automatique pour toutes les bibliothèques qui ne suivent pas PSR-0/4. Pour configurer ceci, vous devez spécifier tous les répertoires ou fichiers pour rechercher des classes.
Alors votre config pourrait ressembler à:
"autoload": {
"classmap": [
"../ModuleA/baseObjects",
"../ModuleB/baseObjects"
]
}
Rappelez-vous, si vous utilisez le mappage de classe, vous devez exécuter composer dump-autoload
chaque fois que vous changez composer.json
, ajoutez une classe, modifier une classe nom/nom/chemin, etc.
supplémentaire: comme l'a souligné @alepeino, en utilisant autoloader optimization va générer une carte de classe de tout PSR-0 et PSR-4 définitions autoload, en utilisant le même code sous-jacent qui classmap
autoload utilise. Cela vous "permettra" d'utiliser l'autoloader PSR-4 et l'extension .inc
. Cela vous demandera toujours d'exécuter composer dump-autoload --optimize
chaque fois que vous modifiez un fichier, tout comme le classmap.
Meilleure recommandation: changez votre code source pour suivre les spécifications du PSR-4 et utilisez l'extension .php
.
Ensuite, mieux si vous ne pouvez pas faire cela: utilisez classmap
pour l'auto-chargement. Utiliser le chargement automatique du classmap résoudra ce problème.
essayer "": "src (dossier principal je suppose que son) /" pas besoin d'initialiser les modules seulement ajouter un dossier et/ – DaAmidza