@@ -163,34 +163,36 @@ protected function getScript($request)
163
163
{
164
164
$ kernel = str_replace ("' " , "\\' " , serialize ($ this ->kernel ));
165
165
$ request = str_replace ("' " , "\\' " , serialize ($ request ));
166
+ $ errorReporting = error_reporting ();
166
167
167
- $ r = new \ReflectionObject ($ this ->kernel );
168
+ $ requires = '' ;
169
+ foreach (get_declared_classes () as $ class ) {
170
+ if (0 === strpos ($ class , 'ComposerAutoloaderInit ' )) {
171
+ $ r = new \ReflectionClass ($ class );
172
+ $ file = dirname (dirname ($ r ->getFileName ())).'/autoload.php ' ;
173
+ if (file_exists ($ file )) {
174
+ $ requires .= "require_once ' " .str_replace ("' " , "\\' " , $ file )."'; \n" ;
175
+ }
176
+ }
177
+ }
168
178
169
- $ autoloader = dirname ($ r ->getFileName ()).'/autoload.php ' ;
170
- if (is_file ($ autoloader )) {
171
- $ autoloader = str_replace ("' " , "\\' " , $ autoloader );
172
- } else {
173
- $ autoloader = '' ;
179
+ if (!$ requires ) {
180
+ throw new \RuntimeException ('Composer autoloader not found. ' );
174
181
}
175
182
176
- $ path = str_replace ("' " , "\\' " , $ r -> getFileName ());
183
+ $ requires .= " require_once ' " . str_replace ("' " , "\\' " , ( new \ ReflectionObject ( $ this -> kernel ))-> getFileName ()). " '; \n" ;
177
184
178
185
$ profilerCode = '' ;
179
186
if ($ this ->profiler ) {
180
187
$ profilerCode = '$kernel->getContainer()->get( \'profiler \')->enable(); ' ;
181
188
}
182
189
183
- $ errorReporting = error_reporting ();
184
-
185
190
$ code = <<<EOF
186
191
<?php
187
192
188
193
error_reporting( $ errorReporting);
189
194
190
- if (' $ autoloader') {
191
- require_once ' $ autoloader';
192
- }
193
- require_once ' $ path';
195
+ $ requires
194
196
195
197
\$kernel = unserialize(' $ kernel');
196
198
\$kernel->boot();
0 commit comments