Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php
Строк: 102
<?php

namespace IlluminateFoundation;

use 
Closure;

class 
EnvironmentDetector
{
    
/**
     * Detect the application's current environment.
     *
     * @param  Closure  $callback
     * @param  array|null  $consoleArgs
     * @return string
     */
    
public function detect(Closure $callback$consoleArgs null)
    {
        if (
$consoleArgs) {
            return 
$this->detectConsoleEnvironment($callback$consoleArgs);
        }

        return 
$this->detectWebEnvironment($callback);
    }

    
/**
     * Set the application environment for a web request.
     *
     * @param  Closure  $callback
     * @return string
     */
    
protected function detectWebEnvironment(Closure $callback)
    {
        return 
$callback();
    }

    
/**
     * Set the application environment from command-line arguments.
     *
     * @param  Closure  $callback
     * @param  array  $args
     * @return string
     */
    
protected function detectConsoleEnvironment(Closure $callback, array $args)
    {
        
// First we will check if an environment argument was passed via console arguments
        // and if it was that automatically overrides as the environment. Otherwise, we
        // will check the environment as a "web" request like a typical HTTP request.
        
if (! is_null($value $this->getEnvironmentArgument($args))) {
            return 
$value;
        }

        return 
$this->detectWebEnvironment($callback);
    }

    
/**
     * Get the environment argument from the console.
     *
     * @param  array  $args
     * @return string|null
     */
    
protected function getEnvironmentArgument(array $args)
    {
        foreach (
$args as $i => $value) {
            if (
$value === '--env') {
                return 
$args[$i 1] ?? null;
            }

            if (
str_starts_with($value'--env=')) {
                return 
head(array_slice(explode('='$value), 1));
            }
        }
    }
}
Онлайн: 0
Реклама