2424use Kint \Kint ;
2525use Kint \Renderer \CliRenderer ;
2626use Kint \Renderer \RichRenderer ;
27+ use Throwable ;
2728
2829/**
2930 * An autoloader that uses both PSR4 autoloading, and traditional classmaps.
@@ -146,16 +147,24 @@ private function loadComposerAutoloader(Modules $modules): void
146147 define ('VENDORPATH ' , dirname ($ this ->composerPath ) . DIRECTORY_SEPARATOR );
147148 }
148149
149- /** @var ClassLoader $composer */
150- $ composer = include $ this ->composerPath ;
150+ try {
151+ /** @var ClassLoader $composer */
152+ $ composer = include $ this ->composerPath ;
151153
152- // Should we load through Composer's namespaces, also?
153- if ($ modules ->discoverInComposer ) {
154- $ composerPackages = $ modules ->composerPackages ;
155- $ this ->loadComposerNamespaces ($ composer , $ composerPackages ?? []);
156- }
154+ // Should we load through Composer's namespaces, also?
155+ if ($ modules ->discoverInComposer ) {
156+ $ composerPackages = $ modules ->composerPackages ;
157+ $ this ->loadComposerNamespaces ($ composer , $ composerPackages ?? []);
158+ }
157159
158- unset($ composer );
160+ unset($ composer );
161+ } catch (ConfigException $ e ) {
162+ // Re-throw configuration exceptions
163+ throw $ e ;
164+ } catch (Throwable ) {
165+ // If Composer fails to load for other reasons, continue
166+ // The SPL autoloader will still work for CodeIgniter's own classes
167+ }
159168 }
160169
161170 /**
@@ -170,8 +179,8 @@ private function loadComposerAutoloader(Modules $modules): void
170179 */
171180 public function register ()
172181 {
173- spl_autoload_register ($ this ->loadClass (...), prepend: true );
174182 spl_autoload_register ($ this ->loadClassmap (...), prepend: true );
183+ spl_autoload_register ($ this ->loadClass (...), prepend: true );
175184
176185 foreach ($ this ->files as $ file ) {
177186 $ this ->includeFile ($ file );
0 commit comments