PD9waHAKCnVzZSBJbGx1bWluYXRlXFN1cHBvcnRcU3RyOwoKcmV0dXJuIFsKCiAgICAvKgogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICB8IERlZmF1bHQgRGF0YWJhc2UgQ29ubmVjdGlvbiBOYW1lCiAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIHwKICAgIHwgSGVyZSB5b3UgbWF5IHNwZWNpZnkgd2hpY2ggb2YgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb25zIGJlbG93IHlvdSB3aXNoCiAgICB8IHRvIHVzZSBhcyB5b3VyIGRlZmF1bHQgY29ubmVjdGlvbiBmb3IgYWxsIGRhdGFiYXNlIHdvcmsuIE9mIGNvdXJzZQogICAgfCB5b3UgbWF5IHVzZSBtYW55IGNvbm5lY3Rpb25zIGF0IG9uY2UgdXNpbmcgdGhlIERhdGFiYXNlIGxpYnJhcnkuCiAgICB8CiAgICAqLwoKICAgICdkZWZhdWx0JyA9PiBlbnYoJ0RCX0NPTk5FQ1RJT04nLCAnbXlzcWwnKSwKCiAgICAvKgogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICB8IERhdGFiYXNlIENvbm5lY3Rpb25zCiAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIHwKICAgIHwgSGVyZSBhcmUgZWFjaCBvZiB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbnMgc2V0dXAgZm9yIHlvdXIgYXBwbGljYXRpb24uCiAgICB8IE9mIGNvdXJzZSwgZXhhbXBsZXMgb2YgY29uZmlndXJpbmcgZWFjaCBkYXRhYmFzZSBwbGF0Zm9ybSB0aGF0IGlzCiAgICB8IHN1cHBvcnRlZCBieSBMYXJhdmVsIGlzIHNob3duIGJlbG93IHRvIG1ha2UgZGV2ZWxvcG1lbnQgc2ltcGxlLgogICAgfAogICAgfAogICAgfCBBbGwgZGF0YWJhc2Ugd29yayBpbiBMYXJhdmVsIGlzIGRvbmUgdGhyb3VnaCB0aGUgUEhQIFBETyBmYWNpbGl0aWVzCiAgICB8IHNvIG1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGUgZHJpdmVyIGZvciB5b3VyIHBhcnRpY3VsYXIgZGF0YWJhc2Ugb2YKICAgIHwgY2hvaWNlIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmUgYmVmb3JlIHlvdSBiZWdpbiBkZXZlbG9wbWVudC4KICAgIHwKICAgICovCgogICAgJ2Nvbm5lY3Rpb25zJyA9PiBbCgogICAgICAgICdzcWxpdGUnID0+IFsKICAgICAgICAgICAgJ2RyaXZlcicgPT4gJ3NxbGl0ZScsCiAgICAgICAgICAgICd1cmwnID0+IGVudignREFUQUJBU0VfVVJMJyksCiAgICAgICAgICAgICdkYXRhYmFzZScgPT4gZW52KCdEQl9EQVRBQkFTRScsIGRhdGFiYXNlX3BhdGgoJ2RhdGFiYXNlLnNxbGl0ZScpKSwKICAgICAgICAgICAgJ3ByZWZpeCcgPT4gJycsCiAgICAgICAgICAgICdmb3JlaWduX2tleV9jb25zdHJhaW50cycgPT4gZW52KCdEQl9GT1JFSUdOX0tFWVMnLCB0cnVlKSwKICAgICAgICBdLAoKICAgICAgICAnbXlzcWwnID0+IFsKICAgICAgICAgICAgJ2RyaXZlcicgPT4gJ215c3FsJywKICAgICAgICAgICAgJ3VybCcgPT4gZW52KCdEQVRBQkFTRV9VUkwnKSwKICAgICAgICAgICAgJ2hvc3QnID0+IGVudignREJfSE9TVCcsICcxMjcuMC4wLjEnKSwKICAgICAgICAgICAgJ3BvcnQnID0+IGVudignREJfUE9SVCcsICczMzA2JyksCiAgICAgICAgICAgICdkYXRhYmFzZScgPT4gZW52KCdEQl9EQVRBQkFTRScsICdmb3JnZScpLAogICAgICAgICAgICAndXNlcm5hbWUnID0+IGVudignREJfVVNFUk5BTUUnLCAnZm9yZ2UnKSwKICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiBlbnYoJ0RCX1BBU1NXT1JEJywgJycpLAogICAgICAgICAgICAndW5peF9zb2NrZXQnID0+IGVudignREJfU09DS0VUJywgJycpLAogICAgICAgICAgICAnY2hhcnNldCcgPT4gJ3V0ZjhtYjQnLAogICAgICAgICAgICAnY29sbGF0aW9uJyA9PiAndXRmOG1iNF91bmljb2RlX2NpJywKICAgICAgICAgICAgJ3ByZWZpeCcgPT4gJycsCiAgICAgICAgICAgICdwcmVmaXhfaW5kZXhlcycgPT4gdHJ1ZSwKICAgICAgICAgICAgJ3N0cmljdCcgPT4gZmFsc2UsCiAgICAgICAgICAgICdlbmdpbmUnID0+IG51bGwsCiAgICAgICAgICAgICdvcHRpb25zJyA9PiBleHRlbnNpb25fbG9hZGVkKCdwZG9fbXlzcWwnKSA/IGFycmF5X2ZpbHRlcihbCiAgICAgICAgICAgICAgICBQRE86Ok1ZU1FMX0FUVFJfU1NMX0NBID0+IGVudignTVlTUUxfQVRUUl9TU0xfQ0EnKSwKICAgICAgICAgICAgXSkgOiBbXSwKICAgICAgICBdLAoKICAgICAgICAncGdzcWwnID0+IFsKICAgICAgICAgICAgJ2RyaXZlcicgPT4gJ3Bnc3FsJywKICAgICAgICAgICAgJ3VybCcgPT4gZW52KCdEQVRBQkFTRV9VUkwnKSwKICAgICAgICAgICAgJ2hvc3QnID0+IGVudignREJfSE9TVCcsICcxMjcuMC4wLjEnKSwKICAgICAgICAgICAgJ3BvcnQnID0+IGVudignREJfUE9SVCcsICc1NDMyJyksCiAgICAgICAgICAgICdkYXRhYmFzZScgPT4gZW52KCdEQl9EQVRBQkFTRScsICdmb3JnZScpLAogICAgICAgICAgICAndXNlcm5hbWUnID0+IGVudignREJfVVNFUk5BTUUnLCAnZm9yZ2UnKSwKICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiBlbnYoJ0RCX1BBU1NXT1JEJywgJycpLAogICAgICAgICAgICAnY2hhcnNldCcgPT4gJ3V0ZjgnLAogICAgICAgICAgICAncHJlZml4JyA9PiAnJywKICAgICAgICAgICAgJ3ByZWZpeF9pbmRleGVzJyA9PiB0cnVlLAogICAgICAgICAgICAnc2NoZW1hJyA9PiAncHVibGljJywKICAgICAgICAgICAgJ3NzbG1vZGUnID0+ICdwcmVmZXInLAogICAgICAgIF0sCgogICAgICAgICdzcWxzcnYnID0+IFsKICAgICAgICAgICAgJ2RyaXZlcicgPT4gJ3NxbHNydicsCiAgICAgICAgICAgICd1cmwnID0+IGVudignREFUQUJBU0VfVVJMJyksCiAgICAgICAgICAgICdob3N0JyA9PiBlbnYoJ0RCX0hPU1QnLCAnbG9jYWxob3N0JyksCiAgICAgICAgICAgICdwb3J0JyA9PiBlbnYoJ0RCX1BPUlQnLCAnMTQzMycpLAogICAgICAgICAgICAnZGF0YWJhc2UnID0+IGVudignREJfREFUQUJBU0UnLCAnZm9yZ2UnKSwKICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiBlbnYoJ0RCX1VTRVJOQU1FJywgJ2ZvcmdlJyksCiAgICAgICAgICAgICdwYXNzd29yZCcgPT4gZW52KCdEQl9QQVNTV09SRCcsICcnKSwKICAgICAgICAgICAgJ2NoYXJzZXQnID0+ICd1dGY4JywKICAgICAgICAgICAgJ3ByZWZpeCcgPT4gJycsCiAgICAgICAgICAgICdwcmVmaXhfaW5kZXhlcycgPT4gdHJ1ZSwKICAgICAgICBdLAoKICAgIF0sCgogICAgLyoKICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgfCBNaWdyYXRpb24gUmVwb3NpdG9yeSBUYWJsZQogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICB8CiAgICB8IFRoaXMgdGFibGUga2VlcHMgdHJhY2sgb2YgYWxsIHRoZSBtaWdyYXRpb25zIHRoYXQgaGF2ZSBhbHJlYWR5IHJ1biBmb3IKICAgIHwgeW91ciBhcHBsaWNhdGlvbi4gVXNpbmcgdGhpcyBpbmZvcm1hdGlvbiwgd2UgY2FuIGRldGVybWluZSB3aGljaCBvZgogICAgfCB0aGUgbWlncmF0aW9ucyBvbiBkaXNrIGhhdmVuJ3QgYWN0dWFsbHkgYmVlbiBydW4gaW4gdGhlIGRhdGFiYXNlLgogICAgfAogICAgKi8KCiAgICAnbWlncmF0aW9ucycgPT4gJ21pZ3JhdGlvbnMnLAoKICAgIC8qCiAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIHwgUmVkaXMgRGF0YWJhc2VzCiAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIHwKICAgIHwgUmVkaXMgaXMgYW4gb3BlbiBzb3VyY2UsIGZhc3QsIGFuZCBhZHZhbmNlZCBrZXktdmFsdWUgc3RvcmUgdGhhdCBhbHNvCiAgICB8IHByb3ZpZGVzIGEgcmljaGVyIGJvZHkgb2YgY29tbWFuZHMgdGhhbiBhIHR5cGljYWwga2V5LXZhbHVlIHN5c3RlbQogICAgfCBzdWNoIGFzIEFQQyBvciBNZW1jYWNoZWQuIExhcmF2ZWwgbWFrZXMgaXQgZWFzeSB0byBkaWcgcmlnaHQgaW4uCiAgICB8CiAgICAqLwoKICAgICdyZWRpcycgPT4gWwoKICAgICAgICAnY2xpZW50JyA9PiBlbnYoJ1JFRElTX0NMSUVOVCcsICdwaHByZWRpcycpLAoKICAgICAgICAnb3B0aW9ucycgPT4gWwogICAgICAgICAgICAnY2x1c3RlcicgPT4gZW52KCdSRURJU19DTFVTVEVSJywgJ3JlZGlzJyksCiAgICAgICAgICAgICdwcmVmaXgnID0+IGVudignUkVESVNfUFJFRklYJywgU3RyOjpzbHVnKGVudignQVBQX05BTUUnLCAnbGFyYXZlbCcpLCAnXycpLidfZGF0YWJhc2VfJyksCiAgICAgICAgXSwKCiAgICAgICAgJ2RlZmF1bHQnID0+IFsKICAgICAgICAgICAgJ3VybCcgPT4gZW52KCdSRURJU19VUkwnKSwKICAgICAgICAgICAgJ2hvc3QnID0+IGVudignUkVESVNfSE9TVCcsICcxMjcuMC4wLjEnKSwKICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiBlbnYoJ1JFRElTX1BBU1NXT1JEJywgbnVsbCksCiAgICAgICAgICAgICdwb3J0JyA9PiBlbnYoJ1JFRElTX1BPUlQnLCAnNjM3OScpLAogICAgICAgICAgICAnZGF0YWJhc2UnID0+IGVudignUkVESVNfREInLCAnMCcpLAogICAgICAgIF0sCgogICAgICAgICdjYWNoZScgPT4gWwogICAgICAgICAgICAndXJsJyA9PiBlbnYoJ1JFRElTX1VSTCcpLAogICAgICAgICAgICAnaG9zdCcgPT4gZW52KCdSRURJU19IT1NUJywgJzEyNy4wLjAuMScpLAogICAgICAgICAgICAncGFzc3dvcmQnID0+IGVudignUkVESVNfUEFTU1dPUkQnLCBudWxsKSwKICAgICAgICAgICAgJ3BvcnQnID0+IGVudignUkVESVNfUE9SVCcsICc2Mzc5JyksCiAgICAgICAgICAgICdkYXRhYmFzZScgPT4gZW52KCdSRURJU19DQUNIRV9EQicsICcxJyksCiAgICAgICAgXSwKCiAgICBdLAoKXTsKPD9waHAKCnJldHVybiBbCgogICAgLyoKICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgfCBUaGlyZCBQYXJ0eSBTZXJ2aWNlcwogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICB8CiAgICB8IFRoaXMgZmlsZSBpcyBmb3Igc3RvcmluZyB0aGUgY3JlZGVudGlhbHMgZm9yIHRoaXJkIHBhcnR5IHNlcnZpY2VzIHN1Y2gKICAgIHwgYXMgTWFpbGd1biwgUG9zdG1hcmssIEFXUyBhbmQgbW9yZS4gVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBkZSBmYWN0bwogICAgfCBsb2NhdGlvbiBmb3IgdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9uLCBhbGxvd2luZyBwYWNrYWdlcyB0byBoYXZlCiAgICB8IGEgY29udmVudGlvbmFsIGZpbGUgdG8gbG9jYXRlIHRoZSB2YXJpb3VzIHNlcnZpY2UgY3JlZGVudGlhbHMuCiAgICB8CiAgICAqLwoKICAgICdtYWlsZ3VuJyA9PiBbCiAgICAgICAgJ2RvbWFpbicgPT4gZW52KCdNQUlMR1VOX0RPTUFJTicpLAogICAgICAgICdzZWNyZXQnID0+IGVudignTUFJTEdVTl9TRUNSRVQnKSwKICAgICAgICAnZW5kcG9pbnQnID0+IGVudignTUFJTEdVTl9FTkRQT0lOVCcsICdhcGkubWFpbGd1bi5uZXQnKSwKICAgIF0sCgogICAgJ3Bvc3RtYXJrJyA9PiBbCiAgICAgICAgJ3Rva2VuJyA9PiBlbnYoJ1BPU1RNQVJLX1RPS0VOJyksCiAgICBdLAoKICAgICdzZXMnID0+IFsKICAgICAgICAna2V5JyA9PiBlbnYoJ0FXU19BQ0NFU1NfS0VZX0lEJyksCiAgICAgICAgJ3NlY3JldCcgPT4gZW52KCdBV1NfU0VDUkVUX0FDQ0VTU19LRVknKSwKICAgICAgICAncmVnaW9uJyA9PiBlbnYoJ0FXU19ERUZBVUxUX1JFR0lPTicsICd1cy1lYXN0LTEnKSwKICAgIF0sCgpdOwo=
}
$this->app->addDeferredServices($manifest['deferred']);
}
/**
* Load the service provider manifest JSON file.
*
* @return array|null
*/
public function loadManifest()
{
// The service manifest is a file containing a JSON representation of every
// service provided by the application and whether its provider is using
// deferred loading or should be eagerly loaded on each request to us.
if ($this->files->exists($this->manifestPath)) {
$manifest = $this->files->getRequire($this->manifestPath);
if ($manifest) {
return array_merge(['when' => []], $manifest);
}
}
}
/**
* Determine if the manifest should be compiled.
*
* @param array $manifest
* @param array $providers
* @return bool
*/
public function shouldRecompile($manifest, $providers)
{
return is_null($manifest) || $manifest['providers'] != $providers;
}
/**
* Register the load events for the given provider.
*
* @param string $provider
"array_merge(): Argument #2 is not an array"
}
$this->app->addDeferredServices($manifest['deferred']);
}
/**
* Load the service provider manifest JSON file.
*
* @return array|null
*/
public function loadManifest()
{
// The service manifest is a file containing a JSON representation of every
// service provided by the application and whether its provider is using
// deferred loading or should be eagerly loaded on each request to us.
if ($this->files->exists($this->manifestPath)) {
$manifest = $this->files->getRequire($this->manifestPath);
if ($manifest) {
return array_merge(['when' => []], $manifest);
}
}
}
/**
* Determine if the manifest should be compiled.
*
* @param array $manifest
* @param array $providers
* @return bool
*/
public function shouldRecompile($manifest, $providers)
{
return is_null($manifest) || $manifest['providers'] != $providers;
}
/**
* Register the load events for the given provider.
*
* @param string $provider
array:1 [ "when" => [] ]
1
* @param \Illuminate\Filesystem\Filesystem $files
* @param string $manifestPath
* @return void
*/
public function __construct(ApplicationContract $app, Filesystem $files, $manifestPath)
{
$this->app = $app;
$this->files = $files;
$this->manifestPath = $manifestPath;
}
/**
* Register the application service providers.
*
* @param array $providers
* @return void
*/
public function load(array $providers)
{
$manifest = $this->loadManifest();
// First we will load the service manifest, which contains information on all
// service providers registered with the application and which services it
// provides. This is used to know which services are "deferred" loaders.
if ($this->shouldRecompile($manifest, $providers)) {
$manifest = $this->compileManifest($providers);
}
// Next, we will register events to load the providers for each of the events
// that it has requested. This allows the service provider to defer itself
// while still getting automatically loaded when a certain event occurs.
foreach ($manifest['when'] as $provider => $events) {
$this->registerLoadEvents($provider, $events);
}
// We will go ahead and register all of the eagerly loaded providers with the
// application so their services can be registered with the application as
// a provided service. Then we will set the deferred service list on it.
foreach ($manifest['eager'] as $provider) {
$this->app->register($provider);
{
return $this['env'] === 'testing';
}
/**
* Register all of the configured providers.
*
* @return void
*/
public function registerConfiguredProviders()
{
$providers = Collection::make($this->config['app.providers'])
->partition(function ($provider) {
return strpos($provider, 'Illuminate\\') === 0;
});
$providers->splice(1, 0, [$this->make(PackageManifest::class)->providers()]);
(new ProviderRepository($this, new Filesystem, $this->getCachedServicesPath()))
->load($providers->collapse()->toArray());
}
/**
* Register a service provider with the application.
*
* @param \Illuminate\Support\ServiceProvider|string $provider
* @param bool $force
* @return \Illuminate\Support\ServiceProvider
*/
public function register($provider, $force = false)
{
if (($registered = $this->getProvider($provider)) && ! $force) {
return $registered;
}
// If the given "provider" is a string, we will resolve it, passing in the
// application instance automatically for the developer. This is simply
// a more convenient way of specifying your service provider classes.
if (is_string($provider)) {
$provider = $this->resolveProvider($provider);
array:35 [ 0 => "Illuminate\Auth\AuthServiceProvider" 1 => "Illuminate\Broadcasting\BroadcastServiceProvider" 2 => "Illuminate\Bus\BusServiceProvider" 3 => "Illuminate\Cache\CacheServiceProvider" 4 => "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider" 5 => "Illuminate\Cookie\CookieServiceProvider" 6 => "Illuminate\Database\DatabaseServiceProvider" 7 => "Illuminate\Encryption\EncryptionServiceProvider" 8 => "Illuminate\Filesystem\FilesystemServiceProvider" 9 => "Illuminate\Foundation\Providers\FoundationServiceProvider" 10 => "Illuminate\Hashing\HashServiceProvider" 11 => "Illuminate\Mail\MailServiceProvider" 12 => "Illuminate\Notifications\NotificationServiceProvider" 13 => "Illuminate\Pagination\PaginationServiceProvider" 14 => "Illuminate\Pipeline\PipelineServiceProvider" 15 => "Illuminate\Queue\QueueServiceProvider" 16 => "Illuminate\Redis\RedisServiceProvider" 17 => "Illuminate\Auth\Passwords\PasswordResetServiceProvider" 18 => "Illuminate\Session\SessionServiceProvider" 19 => "Illuminate\Translation\TranslationServiceProvider" 20 => "Illuminate\Validation\ValidationServiceProvider" 21 => "Illuminate\View\ViewServiceProvider" 22 => "Facade\Ignition\IgnitionServiceProvider" 23 => "Fideloper\Proxy\TrustedProxyServiceProvider" 24 => "Fruitcake\Cors\CorsServiceProvider" 25 => "Laravel\Tinker\TinkerServiceProvider" 26 => "Collective\Html\HtmlServiceProvider" 27 => "Maatwebsite\Excel\ExcelServiceProvider" 28 => "Carbon\Laravel\ServiceProvider" 29 => "NunoMaduro\Collision\Adapters\Laravel\CollisionServiceProvider" 30 => "App\Providers\AppServiceProvider" 31 => "App\Providers\AuthServiceProvider" 32 => "App\Providers\EventServiceProvider" 33 => "App\Providers\RouteServiceProvider" 34 => "Maatwebsite\Excel\ExcelServiceProvider" ]
<?php
namespace Illuminate\Foundation\Bootstrap;
use Illuminate\Contracts\Foundation\Application;
class RegisterProviders
{
/**
* Bootstrap the given application.
*
* @param \Illuminate\Contracts\Foundation\Application $app
* @return void
*/
public function bootstrap(Application $app)
{
$app->registerConfiguredProviders();
}
}
{
$this->register(new EventServiceProvider($this));
$this->register(new LogServiceProvider($this));
$this->register(new RoutingServiceProvider($this));
}
/**
* Run the given array of bootstrap classes.
*
* @param string[] $bootstrappers
* @return void
*/
public function bootstrapWith(array $bootstrappers)
{
$this->hasBeenBootstrapped = true;
foreach ($bootstrappers as $bootstrapper) {
$this['events']->dispatch('bootstrapping: '.$bootstrapper, [$this]);
$this->make($bootstrapper)->bootstrap($this);
$this['events']->dispatch('bootstrapped: '.$bootstrapper, [$this]);
}
}
/**
* Register a callback to run after loading the environment.
*
* @param \Closure $callback
* @return void
*/
public function afterLoadingEnvironment(Closure $callback)
{
return $this->afterBootstrapping(
LoadEnvironmentVariables::class, $callback
);
}
/**
* Register a callback to run before a bootstrapper.
Illuminate\Foundation\Application {#2}
Facade::clearResolvedInstance('request');
$this->bootstrap();
return (new Pipeline($this->app))
->send($request)
->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
->then($this->dispatchToRouter());
}
/**
* Bootstrap the application for HTTP requests.
*
* @return void
*/
public function bootstrap()
{
if (! $this->app->hasBeenBootstrapped()) {
$this->app->bootstrapWith($this->bootstrappers());
}
}
/**
* Get the route dispatcher callback.
*
* @return \Closure
*/
protected function dispatchToRouter()
{
return function ($request) {
$this->app->instance('request', $request);
return $this->router->dispatch($request);
};
}
/**
* Call the terminate method on any terminable middleware.
*
array:6 [ 0 => "Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables" 1 => "Illuminate\Foundation\Bootstrap\LoadConfiguration" 2 => "Illuminate\Foundation\Bootstrap\HandleExceptions" 3 => "Illuminate\Foundation\Bootstrap\RegisterFacades" 4 => "Illuminate\Foundation\Bootstrap\RegisterProviders" 5 => "Illuminate\Foundation\Bootstrap\BootProviders" ]
$this->app['events']->dispatch(
new RequestHandled($request, $response)
);
return $response;
}
/**
* Send the given request through the middleware / router.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
protected function sendRequestThroughRouter($request)
{
$this->app->instance('request', $request);
Facade::clearResolvedInstance('request');
$this->bootstrap();
return (new Pipeline($this->app))
->send($request)
->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
->then($this->dispatchToRouter());
}
/**
* Bootstrap the application for HTTP requests.
*
* @return void
*/
public function bootstrap()
{
if (! $this->app->hasBeenBootstrapped()) {
$this->app->bootstrapWith($this->bootstrappers());
}
}
/**
public function __construct(Application $app, Router $router)
{
$this->app = $app;
$this->router = $router;
$this->syncMiddlewareToRouter();
}
/**
* Handle an incoming HTTP request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function handle($request)
{
try {
$request->enableHttpMethodParameterOverride();
$response = $this->sendRequestThroughRouter($request);
} catch (Throwable $e) {
$this->reportException($e);
$response = $this->renderException($request, $e);
}
$this->app['events']->dispatch(
new RequestHandled($request, $response)
);
return $response;
}
/**
* Send the given request through the middleware / router.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
protected function sendRequestThroughRouter($request)
Illuminate\Http\Request {#43 #json: null #convertedFiles: null #userResolver: null #routeResolver: null +attributes: Symfony\Component\HttpFoundation\ParameterBag {#45} +request: Symfony\Component\HttpFoundation\ParameterBag {#51} +query: Symfony\Component\HttpFoundation\ParameterBag {#51} +server: Symfony\Component\HttpFoundation\ServerBag {#47} +files: Symfony\Component\HttpFoundation\FileBag {#48} +cookies: Symfony\Component\HttpFoundation\ParameterBag {#46} +headers: Symfony\Component\HttpFoundation\HeaderBag {#49} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: null #requestUri: null #baseUrl: null #basePath: null #method: null #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true : "/" : "/" : "" : "" : "GET" : "html" }
*/
$app = require_once __DIR__.'/../bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
Illuminate\Http\Request {#43 #json: null #convertedFiles: null #userResolver: null #routeResolver: null +attributes: Symfony\Component\HttpFoundation\ParameterBag {#45} +request: Symfony\Component\HttpFoundation\ParameterBag {#51} +query: Symfony\Component\HttpFoundation\ParameterBag {#51} +server: Symfony\Component\HttpFoundation\ServerBag {#47} +files: Symfony\Component\HttpFoundation\FileBag {#48} +cookies: Symfony\Component\HttpFoundation\ParameterBag {#46} +headers: Symfony\Component\HttpFoundation\HeaderBag {#49} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: null #requestUri: null #baseUrl: null #basePath: null #method: null #format: null #session: null #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true : "/" : "/" : "" : "" : "GET" : "html" }
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <taylor@laravel.com>
*/
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/index.php';
"/home/ec2-user/www/public/index.php"
| Key | Value |
| USER | "apache"
|
| HOME | "/usr/share/httpd"
|
| SCRIPT_NAME | "/index.php"
|
| REQUEST_URI | "/"
|
| QUERY_STRING | "" |
| REQUEST_METHOD | "GET"
|
| SERVER_PROTOCOL | "HTTP/1.1"
|
| GATEWAY_INTERFACE | "CGI/1.1"
|
| REMOTE_PORT | "14362"
|
| SCRIPT_FILENAME | "/home/ec2-user/www/index.php"
|
| SERVER_ADMIN | "root@localhost"
|
| CONTEXT_DOCUMENT_ROOT | "/home/ec2-user/www"
|
| CONTEXT_PREFIX | "" |
| REQUEST_SCHEME | "https"
|
| DOCUMENT_ROOT | "/home/ec2-user/www"
|
| REMOTE_ADDR | "162.159.115.33"
|
| SERVER_PORT | "80"
|
| SERVER_ADDR | "172.31.90.49"
|
| SERVER_NAME | "stemperts.com"
|
| SERVER_SOFTWARE | "Apache/2.4.46 () OpenSSL/1.0.2k-fips"
|
| SERVER_SIGNATURE | "" |
| PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
| HTTP_CONNECTION | "Keep-Alive"
|
| HTTP_X_FORWARDED_FOR | "216.73.216.84"
|
| HTTP_X_FORWARDED_PROTO | "https"
|
| HTTP_CF_VISITOR | "{"scheme":"https"}"
|
| HTTP_CF_IPCOUNTRY | "US"
|
| HTTP_CF_CONNECTING_IP | "216.73.216.84"
|
| HTTP_CDN_LOOP | "cloudflare; loops=1"
|
| HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
| HTTP_ACCEPT_ENCODING | "gzip, br"
|
| HTTP_ACCEPT | "*/*"
|
| HTTP_CF_RAY | "9d633b004ac68020-CMH"
|
| HTTP_HOST | "stemperts.com"
|
| proxy-nokeepalive | "1"
|
| SSL_TLS_SNI | "stemperts.com"
|
| HTTPS | "on"
|
| UNIQUE_ID | "aaX2TAiF0nfDNya4nNgbZwAAAAw"
|
| FCGI_ROLE | "RESPONDER"
|
| PHP_SELF | "/index.php"
|
| REQUEST_TIME_FLOAT | 1772484172.8947
|
| REQUEST_TIME | 1772484172
|
| APP_NAME | "STEMperts"
|
| APP_ENV | "local"
|
| APP_KEY | "base64:MN/3ymIn2pfdlhbH+EbPT9QTRKKqm2N5tmWdvGQFLWw="
|
| APP_DEBUG | "true"
|
| APP_URL | "https://stemperts.com"
|
| ASSET_URL | "https://stemperts.com/public"
|
| LOG_CHANNEL | "stack"
|
| DB_CONNECTION | "mysql"
|
| DB_HOST | "localhost"
|
| DB_PORT | "3306"
|
| DB_DATABASE | "stemperts"
|
| DB_USERNAME | "sw7rw42"
|
| DB_PASSWORD | "w97WktkwTTwtt"
|
| BROADCAST_DRIVER | "log"
|
| CACHE_DRIVER | "file"
|
| QUEUE_CONNECTION | "sync"
|
| SESSION_DRIVER | "file"
|
| SESSION_LIFETIME | "120"
|
| REDIS_HOST | "127.0.0.1"
|
| REDIS_PASSWORD | "null"
|
| REDIS_PORT | "6379"
|
| MAIL_DRIVER | "smtp"
|
| MAIL_HOST | "email-smtp.us-east-1.amazonaws.com"
|
| MAIL_PORT | "587"
|
| MAIL_USERNAME | "AKIAX5226OQ36ZSZTHO6"
|
| MAIL_PASSWORD | "BD9H7wyAbgsCWfTn5mxclUJcwu1dptJzB4o/sLp+0Mto"
|
| MAIL_ENCRYPTION | "tls"
|
| AWS_ACCESS_KEY_ID | "" |
| AWS_SECRET_ACCESS_KEY | "" |
| AWS_DEFAULT_REGION | "us-east-1"
|
| AWS_BUCKET | "" |
| PUSHER_APP_ID | "" |
| PUSHER_APP_KEY | "" |
| PUSHER_APP_SECRET | "" |
| PUSHER_APP_CLUSTER | "mt1"
|
| MIX_PUSHER_APP_KEY | "" |
| MIX_PUSHER_APP_CLUSTER | "mt1"
|
| PAYPAL_PAY_MODE | "live"
|
| PAYPAL_URL | "https://api-m.paypal.com"
|
| PAYPAL_CLIENT_ID | "AfOC0RNZiRIFYX_BiQcPh9TmAUct_PQyeuo6a4l16f5IlNrbN-YwlDdLt9A1rridawEs7Gnjze3ZPAjj"
|
| PAYPAL_SECRET | "EFqoICd4hgV6MTUmsRX0xsbz7MaS4RDaO0Verhhr2lVBSwlTgwGCLRHXpYA1FjyFXNMG4tbCusPHEVLX"
|
| Key | Value |
| APP_NAME | "STEMperts"
|
| APP_ENV | "local"
|
| APP_KEY | "base64:MN/3ymIn2pfdlhbH+EbPT9QTRKKqm2N5tmWdvGQFLWw="
|
| APP_DEBUG | "true"
|
| APP_URL | "https://stemperts.com"
|
| ASSET_URL | "https://stemperts.com/public"
|
| LOG_CHANNEL | "stack"
|
| DB_CONNECTION | "mysql"
|
| DB_HOST | "localhost"
|
| DB_PORT | "3306"
|
| DB_DATABASE | "stemperts"
|
| DB_USERNAME | "sw7rw42"
|
| DB_PASSWORD | "w97WktkwTTwtt"
|
| BROADCAST_DRIVER | "log"
|
| CACHE_DRIVER | "file"
|
| QUEUE_CONNECTION | "sync"
|
| SESSION_DRIVER | "file"
|
| SESSION_LIFETIME | "120"
|
| REDIS_HOST | "127.0.0.1"
|
| REDIS_PASSWORD | "null"
|
| REDIS_PORT | "6379"
|
| MAIL_DRIVER | "smtp"
|
| MAIL_HOST | "email-smtp.us-east-1.amazonaws.com"
|
| MAIL_PORT | "587"
|
| MAIL_USERNAME | "AKIAX5226OQ36ZSZTHO6"
|
| MAIL_PASSWORD | "BD9H7wyAbgsCWfTn5mxclUJcwu1dptJzB4o/sLp+0Mto"
|
| MAIL_ENCRYPTION | "tls"
|
| AWS_ACCESS_KEY_ID | "" |
| AWS_SECRET_ACCESS_KEY | "" |
| AWS_DEFAULT_REGION | "us-east-1"
|
| AWS_BUCKET | "" |
| PUSHER_APP_ID | "" |
| PUSHER_APP_KEY | "" |
| PUSHER_APP_SECRET | "" |
| PUSHER_APP_CLUSTER | "mt1"
|
| MIX_PUSHER_APP_KEY | "" |
| MIX_PUSHER_APP_CLUSTER | "mt1"
|
| PAYPAL_PAY_MODE | "live"
|
| PAYPAL_URL | "https://api-m.paypal.com"
|
| PAYPAL_CLIENT_ID | "AfOC0RNZiRIFYX_BiQcPh9TmAUct_PQyeuo6a4l16f5IlNrbN-YwlDdLt9A1rridawEs7Gnjze3ZPAjj"
|
| PAYPAL_SECRET | "EFqoICd4hgV6MTUmsRX0xsbz7MaS4RDaO0Verhhr2lVBSwlTgwGCLRHXpYA1FjyFXNMG4tbCusPHEVLX"
|