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

namespace IlluminateFoundationConsole;

use 
IlluminateConsoleCommand;
use 
IlluminateSupportArr;
use 
SymfonyComponentConsoleAttributeAsCommand;

#[AsCommand(name: 'config:show')]
class ConfigShowCommand extends Command
{
    
/**
     * The console command signature.
     *
     * @var string
     */
    
protected $signature 'config:show {config : The configuration file to show}';

    
/**
     * The console command description.
     *
     * @var string
     */
    
protected $description 'Display all of the values for a given configuration file';

    
/**
     * Execute the console command.
     *
     * @return int
     */
    
public function handle()
    {
        
$config $this->argument('config');

        if (! 
config()->has($config)) {
            
$this->components->error("Configuration file `{$config}` does not exist.");

            return 
Command::FAILURE;
        }

        
$this->newLine();
        
$this->render($config);
        
$this->newLine();

        return 
Command::SUCCESS;
    }

    
/**
     * Render the configuration values.
     *
     * @param  string  $name
     * @return void
     */
    
public function render($name)
    {
        
$data config($name);

        if (! 
is_array($data)) {
            
$this->title($name$this->formatValue($data));

            return;
        }

        
$this->title($name);

        foreach (
Arr::dot($data) as $key => $value) {
            
$this->components->twoColumnDetail(
                
$this->formatKey($key),
                
$this->formatValue($value)
            );
        }
    }

    
/**
     * Render the title.
     *
     * @param  string  $title
     * @param  string|null  $subtitle
     * @return void
     */
    
public function title($title$subtitle null)
    {
        
$this->components->twoColumnDetail(
            
"<fg=green;options=bold>{$title}</>",
            
$subtitle,
        );
    }

    
/**
     * Format the given configuration key.
     *
     * @param  string  $key
     * @return string
     */
    
protected function formatKey($key)
    {
        return 
preg_replace_callback(
            
'/(.*).(.*)$/'fn ($matches) => sprintf(
                
'<fg=gray>%s ⇁</> %s',
                
str_replace('.'' ⇁ '$matches[1]),
                
$matches[2]
            ), 
$key
        
);
    }

    
/**
     * Format the given configuration value.
     *
     * @param  mixed  $value
     * @return string
     */
    
protected function formatValue($value)
    {
        return 
match (true) {
            
is_bool($value) => sprintf('<fg=#ef8414;options=bold>%s</>'$value 'true' 'false'),
            
is_null($value) => '<fg=#ef8414;options=bold>null</>',
            
is_numeric($value) => "<fg=#ef8414;options=bold>{$value}</>",
            
is_array($value) => '[]',
            
is_object($value) => get_class($value),
            
is_string($value) => $value,
            default => 
print_r($valuetrue),
        };
    }
}
Онлайн: 0
Реклама