!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/queuepro/vendor/laravel/framework/src/Illuminate/Routing/Console/   drwxrwxr-x
Free 13.12 GB of 57.97 GB (22.63%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ControllerMakeCommand.php (9.21 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Illuminate\Routing\Console;

use 
Illuminate\Console\Concerns\CreatesMatchingTest;
use 
Illuminate\Console\GeneratorCommand;
use 
InvalidArgumentException;
use 
Symfony\Component\Console\Input\InputOption;

class 
ControllerMakeCommand extends GeneratorCommand
{
    use 
CreatesMatchingTest;

    
/**
     * The console command name.
     *
     * @var string
     */
    
protected $name 'make:controller';

    
/**
     * The name of the console command.
     *
     * This name is used to identify the command during lazy loading.
     *
     * @var string|null
     */
    
protected static $defaultName 'make:controller';

    
/**
     * The console command description.
     *
     * @var string
     */
    
protected $description 'Create a new controller class';

    
/**
     * The type of class being generated.
     *
     * @var string
     */
    
protected $type 'Controller';

    
/**
     * Get the stub file for the generator.
     *
     * @return string
     */
    
protected function getStub()
    {
        
$stub null;

        if (
$type $this->option('type')) {
            
$stub "/stubs/controller.{$type}.stub";
        } elseif (
$this->option('parent')) {
            
$stub '/stubs/controller.nested.stub';
        } elseif (
$this->option('model')) {
            
$stub '/stubs/controller.model.stub';
        } elseif (
$this->option('invokable')) {
            
$stub '/stubs/controller.invokable.stub';
        } elseif (
$this->option('resource')) {
            
$stub '/stubs/controller.stub';
        }

        if (
$this->option('api') && is_null($stub)) {
            
$stub '/stubs/controller.api.stub';
        } elseif (
$this->option('api') && ! is_null($stub) && ! $this->option('invokable')) {
            
$stub str_replace('.stub''.api.stub'$stub);
        }

        
$stub $stub ?? '/stubs/controller.plain.stub';

        return 
$this->resolveStubPath($stub);
    }

    
/**
     * Resolve the fully-qualified path to the stub.
     *
     * @param  string  $stub
     * @return string
     */
    
protected function resolveStubPath($stub)
    {
        return 
file_exists($customPath $this->laravel->basePath(trim($stub'/')))
                        ? 
$customPath
                        
__DIR__.$stub;
    }

    
/**
     * Get the default namespace for the class.
     *
     * @param  string  $rootNamespace
     * @return string
     */
    
protected function getDefaultNamespace($rootNamespace)
    {
        return 
$rootNamespace.'\Http\Controllers';
    }

    
/**
     * Build the class with the given name.
     *
     * Remove the base controller import if we are already in the base namespace.
     *
     * @param  string  $name
     * @return string
     */
    
protected function buildClass($name)
    {
        
$controllerNamespace $this->getNamespace($name);

        
$replace = [];

        if (
$this->option('parent')) {
            
$replace $this->buildParentReplacements();
        }

        if (
$this->option('model')) {
            
$replace $this->buildModelReplacements($replace);
        }

        
$replace["use {$controllerNamespace}\Controller;\n"] = '';

        return 
str_replace(
            
array_keys($replace), array_values($replace), parent::buildClass($name)
        );
    }

    
/**
     * Build the replacements for a parent controller.
     *
     * @return array
     */
    
protected function buildParentReplacements()
    {
        
$parentModelClass $this->parseModel($this->option('parent'));

        if (! 
class_exists($parentModelClass) &&
            
$this->confirm("A {$parentModelClass} model does not exist. Do you want to generate it?"true)) {
            
$this->call('make:model', ['name' => $parentModelClass]);
        }

        return [
            
'ParentDummyFullModelClass' => $parentModelClass,
            
'{{ namespacedParentModel }}' => $parentModelClass,
            
'{{namespacedParentModel}}' => $parentModelClass,
            
'ParentDummyModelClass' => class_basename($parentModelClass),
            
'{{ parentModel }}' => class_basename($parentModelClass),
            
'{{parentModel}}' => class_basename($parentModelClass),
            
'ParentDummyModelVariable' => lcfirst(class_basename($parentModelClass)),
            
'{{ parentModelVariable }}' => lcfirst(class_basename($parentModelClass)),
            
'{{parentModelVariable}}' => lcfirst(class_basename($parentModelClass)),
        ];
    }

    
/**
     * Build the model replacement values.
     *
     * @param  array  $replace
     * @return array
     */
    
protected function buildModelReplacements(array $replace)
    {
        
$modelClass $this->parseModel($this->option('model'));

        if (! 
class_exists($modelClass) && $this->confirm("A {$modelClass} model does not exist. Do you want to generate it?"true)) {
            
$this->call('make:model', ['name' => $modelClass]);
        }

        
$replace $this->buildFormRequestReplacements($replace$modelClass);

        return 
array_merge($replace, [
            
'DummyFullModelClass' => $modelClass,
            
'{{ namespacedModel }}' => $modelClass,
            
'{{namespacedModel}}' => $modelClass,
            
'DummyModelClass' => class_basename($modelClass),
            
'{{ model }}' => class_basename($modelClass),
            
'{{model}}' => class_basename($modelClass),
            
'DummyModelVariable' => lcfirst(class_basename($modelClass)),
            
'{{ modelVariable }}' => lcfirst(class_basename($modelClass)),
            
'{{modelVariable}}' => lcfirst(class_basename($modelClass)),
        ]);
    }

    
/**
     * Get the fully-qualified model class name.
     *
     * @param  string  $model
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    
protected function parseModel($model)
    {
        if (
preg_match('([^A-Za-z0-9_/\\\\])'$model)) {
            throw new 
InvalidArgumentException('Model name contains invalid characters.');
        }

        return 
$this->qualifyModel($model);
    }

    
/**
     * Build the model replacement values.
     *
     * @param  array  $replace
     * @param  string  $modelClass
     * @return array
     */
    
protected function buildFormRequestReplacements(array $replace$modelClass)
    {
        [
$namespace$storeRequestClass$updateRequestClass] = [
            
'Illuminate\\Http''Request''Request',
        ];

        if (
$this->option('requests')) {
            
$namespace 'App\\Http\\Requests';

            [
$storeRequestClass$updateRequestClass] = $this->generateFormRequests(
                
$modelClass$storeRequestClass$updateRequestClass
            
);
        }

        
$namespacedRequests $namespace.'\\'.$storeRequestClass.';';

        if (
$storeRequestClass !== $updateRequestClass) {
            
$namespacedRequests .= PHP_EOL.'use '.$namespace.'\\'.$updateRequestClass.';';
        }

        return 
array_merge($replace, [
            
'{{ storeRequest }}' => $storeRequestClass,
            
'{{storeRequest}}' => $storeRequestClass,
            
'{{ updateRequest }}' => $updateRequestClass,
            
'{{updateRequest}}' => $updateRequestClass,
            
'{{ namespacedStoreRequest }}' => $namespace.'\\'.$storeRequestClass,
            
'{{namespacedStoreRequest}}' => $namespace.'\\'.$storeRequestClass,
            
'{{ namespacedUpdateRequest }}' => $namespace.'\\'.$updateRequestClass,
            
'{{namespacedUpdateRequest}}' => $namespace.'\\'.$updateRequestClass,
            
'{{ namespacedRequests }}' => $namespacedRequests,
            
'{{namespacedRequests}}' => $namespacedRequests,
        ]);
    }

    
/**
     * Generate the form requests for the given model and classes.
     *
     * @param  string  $modelClass
     * @param  string  $storeRequestClass
     * @param  string  $updateRequestClass
     * @return array
     */
    
protected function generateFormRequests($modelClass$storeRequestClass$updateRequestClass)
    {
        
$storeRequestClass 'Store'.class_basename($modelClass).'Request';

        
$this->call('make:request', [
            
'name' => $storeRequestClass,
        ]);

        
$updateRequestClass 'Update'.class_basename($modelClass).'Request';

        
$this->call('make:request', [
            
'name' => $updateRequestClass,
        ]);

        return [
$storeRequestClass$updateRequestClass];
    }

    
/**
     * Get the console command options.
     *
     * @return array
     */
    
protected function getOptions()
    {
        return [
            [
'api'nullInputOption::VALUE_NONE'Exclude the create and edit methods from the controller.'],
            [
'type'nullInputOption::VALUE_REQUIRED'Manually specify the controller stub file to use.'],
            [
'force'nullInputOption::VALUE_NONE'Create the class even if the controller already exists'],
            [
'invokable''i'InputOption::VALUE_NONE'Generate a single method, invokable controller class.'],
            [
'model''m'InputOption::VALUE_OPTIONAL'Generate a resource controller for the given model.'],
            [
'parent''p'InputOption::VALUE_OPTIONAL'Generate a nested resource controller class.'],
            [
'resource''r'InputOption::VALUE_NONE'Generate a resource controller class.'],
            [
'requests''R'InputOption::VALUE_NONE'Generate FormRequest classes for store and update.'],
        ];
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0174 ]--