@@ -56,7 +56,7 @@ public function locateFile(string $file, ?string $folder = null, string $ext = '
5656 if (! empty ($ folder ) && strpos ($ file , $ folder ) === 0 ) {
5757 $ file = substr ($ file , strlen ($ folder . '/ ' ));
5858 }
59-
59+
6060 // N'est-il pas namespaced ? Essayez le dossier d'application.
6161 if (strpos ($ file , '\\' ) === false ) {
6262 return $ this ->legacyLocate ($ file , $ folder );
@@ -67,51 +67,53 @@ public function locateFile(string $file, ?string $folder = null, string $ext = '
6767 $ file = ltrim ($ file , '\\' );
6868
6969 $ segments = explode ('\\' , $ file );
70-
70+
7171 // Le premier segment sera vide si une barre oblique commence le nom du fichier.
7272 if (empty ($ segments [0 ])) {
7373 unset($ segments [0 ]);
7474 }
75-
75+
7676 $ paths = [];
7777 $ filename = '' ;
7878
7979 // Les espaces de noms sont toujours accompagnés de tableaux de chemins
8080 $ namespaces = $ this ->autoloader ->getNamespace ();
81-
82- foreach (array_keys ($ namespaces ) as $ namespace ) {
81+ $ keys = array_keys ($ namespaces );
82+ sort ($ keys );
83+
84+ foreach ($ keys as $ namespace ) {
8385 if (substr ($ file , 0 , strlen ($ namespace ) + 1 ) === $ namespace . '\\' ) {
8486 $ fileWithoutNamespace = substr ($ file , strlen ($ namespace ));
85-
87+
8688 // Il peut y avoir des sous-espaces de noms du même fournisseur,
8789 // donc écrasez-les avec des espaces de noms trouvés plus tard.
8890 $ paths = $ namespaces [$ namespace ];
8991 $ filename = ltrim (str_replace ('\\' , '/ ' , $ fileWithoutNamespace ), '/ ' );
9092 }
9193 }
92-
94+
9395 // si aucun espace de noms ne correspond, quittez
9496 if (empty ($ paths )) {
9597 return false ;
9698 }
97-
99+
98100 // Vérifier chaque chemin dans l'espace de noms
99101 foreach ($ paths as $ path ) {
100102 // Assurez-vous que la barre oblique finale
101103 $ path = rtrim ($ path , '/ ' ) . '/ ' ;
102-
104+
103105 // Si nous avons un nom de dossier, la fonction appelante s'attend à ce que ce fichier se trouve
104106 // dans ce dossier, comme "Views" ou "Librairies".
105107 if (! empty ($ folder ) && strpos ($ path . $ filename , '/ ' . $ folder . '/ ' ) === false ) {
106108 $ path .= trim ($ folder , '/ ' ) . '/ ' ;
107109 }
108-
109110 $ path .= $ filename ;
111+
110112 if (is_file ($ path )) {
111113 return $ path ;
112114 }
113115 }
114-
116+
115117 return false ;
116118 }
117119
@@ -239,7 +241,7 @@ public function getClassname(string $file): string
239241 public function search (string $ path , string $ ext = 'php ' , bool $ prioritizeApp = true ): array
240242 {
241243 $ path = $ this ->ensureExt ($ path , $ ext );
242-
244+
243245 $ foundPaths = [];
244246 $ appPaths = [];
245247
0 commit comments