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
}
$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(): Expected parameter 2 to be an array, int given"
}
$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
* @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);
<?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.
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.
*
$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)
return __DIR__;
});
/*
|--------------------------------------------------------------------------
| 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);
| Key | Value |
| REDIRECT_HTTPS | "on"
|
| REDIRECT_SSL_TLS_SNI | "puntos.yastas.com"
|
| REDIRECT_STATUS | "200"
|
| HTTPS | "on"
|
| SSL_TLS_SNI | "puntos.yastas.com"
|
| HTTP_ACCEPT | "*/*"
|
| HTTP_USER_AGENT | "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
|
| HTTP_ACCEPT_ENCODING | "gzip, br, zstd, deflate"
|
| HTTP_HOST | "puntos.yastas.com"
|
| PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
|
| SERVER_SIGNATURE | "<address>Apache/2.4.41 (Ubuntu) Server at puntos.yastas.com Port 443</address>\n"
|
| SERVER_SOFTWARE | "Apache/2.4.41 (Ubuntu)"
|
| SERVER_NAME | "puntos.yastas.com"
|
| SERVER_ADDR | "172.31.34.245"
|
| SERVER_PORT | "443"
|
| REMOTE_ADDR | "216.73.216.75"
|
| DOCUMENT_ROOT | "/var/www/html"
|
| REQUEST_SCHEME | "https"
|
| CONTEXT_PREFIX | "" |
| CONTEXT_DOCUMENT_ROOT | "/var/www/html"
|
| SERVER_ADMIN | "admin@multilocation.site"
|
| SCRIPT_FILENAME | "/var/www/html/index.php"
|
| REMOTE_PORT | "51947"
|
| REDIRECT_URL | "/tamaulipas/victoria/ejido-la-mision-ejido/abarrotes-los-cuates"
|
| GATEWAY_INTERFACE | "CGI/1.1"
|
| SERVER_PROTOCOL | "HTTP/1.1"
|
| REQUEST_METHOD | "GET"
|
| QUERY_STRING | "" |
| REQUEST_URI | "/tamaulipas/victoria/ejido-la-mision-ejido/abarrotes-los-cuates"
|
| SCRIPT_NAME | "/index.php"
|
| PHP_SELF | "/index.php"
|
| REQUEST_TIME_FLOAT | 1778770630.979
|
| REQUEST_TIME | 1778770630
|
| APP_NAME | "Multilocation"
|
| APP_ENV | "production"
|
| APP_KEY | "base64:yMY1WenL+gLg0ok8g3knwEgk8bNmd3JvUVxLnSQvNAA="
|
| APP_DEBUG | "true"
|
| APP_URL | "https://multilocation.site"
|
| LOG_CHANNEL | "stack"
|
| URL_API_ML | "https://api.multilocation.site/v1"
|
| API_KEY_ML | "aGlDV050bGp0VjU2aEVKM3BHNkNaRTVOWDJEVVIyVW4yTVNiRDhyOQ=="
|
| DB_CONNECTION | "mysql"
|
| DB_HOST | "127.0.0.1"
|
| DB_PORT | "3306"
|
| DB_DATABASE | "" |
| DB_USERNAME | "" |
| DB_PASSWORD | "" |
| DB_HOST_TRANSF | "yastas-80.csntdtzmlc9p.us-east-2.rds.amazonaws.com"
|
| DB_PORT_TRANSF | "3306"
|
| DB_DATABASE_TRANSF | "yastas_prod"
|
| DB_USERNAME_TRANSF | "usrdb_yastas"
|
| DB_PASSWORD_TRANSF | "Hb5td=kv!s0Xa"
|
| 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_MAILER | "smtp"
|
| MAIL_HOST | "smtp.mailtrap.io"
|
| MAIL_PORT | "2525"
|
| MAIL_USERNAME | "null"
|
| MAIL_PASSWORD | "null"
|
| MAIL_ENCRYPTION | "null"
|
| MAIL_FROM_ADDRESS | "null"
|
| MAIL_FROM_NAME | "Multilocation"
|
| 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"
|
| API_KEY_GOOGLE_MAPS | "AIzaSyDHkYVo8RMFiJb6Qs6Z716wEGcOPUXGZto"
|
| API_KEY_GOOGLE_MAPS_CASADETONO | "AIzaSyDjB2u4tUokoxu0kW1u9Le0i7GiL1oqfG4"
|
| API_KEY_GOOGLE_MAPS_BANCOPPEL | "AIzaSyDRlfE6xyKYKcKFqMq3zI5NgTkUIUTj8uU"
|
| Key | Value |
| APP_NAME | "Multilocation"
|
| APP_ENV | "production"
|
| APP_KEY | "base64:yMY1WenL+gLg0ok8g3knwEgk8bNmd3JvUVxLnSQvNAA="
|
| APP_DEBUG | "true"
|
| APP_URL | "https://multilocation.site"
|
| LOG_CHANNEL | "stack"
|
| URL_API_ML | "https://api.multilocation.site/v1"
|
| API_KEY_ML | "aGlDV050bGp0VjU2aEVKM3BHNkNaRTVOWDJEVVIyVW4yTVNiRDhyOQ=="
|
| DB_CONNECTION | "mysql"
|
| DB_HOST | "127.0.0.1"
|
| DB_PORT | "3306"
|
| DB_DATABASE | "" |
| DB_USERNAME | "" |
| DB_PASSWORD | "" |
| DB_HOST_TRANSF | "yastas-80.csntdtzmlc9p.us-east-2.rds.amazonaws.com"
|
| DB_PORT_TRANSF | "3306"
|
| DB_DATABASE_TRANSF | "yastas_prod"
|
| DB_USERNAME_TRANSF | "usrdb_yastas"
|
| DB_PASSWORD_TRANSF | "Hb5td=kv!s0Xa"
|
| 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_MAILER | "smtp"
|
| MAIL_HOST | "smtp.mailtrap.io"
|
| MAIL_PORT | "2525"
|
| MAIL_USERNAME | "null"
|
| MAIL_PASSWORD | "null"
|
| MAIL_ENCRYPTION | "null"
|
| MAIL_FROM_ADDRESS | "null"
|
| MAIL_FROM_NAME | "Multilocation"
|
| 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"
|
| API_KEY_GOOGLE_MAPS | "AIzaSyDHkYVo8RMFiJb6Qs6Z716wEGcOPUXGZto"
|
| API_KEY_GOOGLE_MAPS_CASADETONO | "AIzaSyDjB2u4tUokoxu0kW1u9Le0i7GiL1oqfG4"
|
| API_KEY_GOOGLE_MAPS_BANCOPPEL | "AIzaSyDRlfE6xyKYKcKFqMq3zI5NgTkUIUTj8uU"
|