Commaaa2
This commit is contained in:
82
vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php
vendored
Normal file → Executable file
82
vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php
vendored
Normal file → Executable file
@@ -2,13 +2,15 @@
|
||||
|
||||
namespace Illuminate\Routing\Console;
|
||||
|
||||
use Illuminate\Console\Concerns\CreatesMatchingTest;
|
||||
use Illuminate\Console\GeneratorCommand;
|
||||
use Illuminate\Support\Str;
|
||||
use InvalidArgumentException;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
|
||||
class ControllerMakeCommand extends GeneratorCommand
|
||||
{
|
||||
use CreatesMatchingTest;
|
||||
|
||||
/**
|
||||
* The console command name.
|
||||
*
|
||||
@@ -39,7 +41,9 @@ class ControllerMakeCommand extends GeneratorCommand
|
||||
{
|
||||
$stub = null;
|
||||
|
||||
if ($this->option('parent')) {
|
||||
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';
|
||||
@@ -87,7 +91,7 @@ class ControllerMakeCommand extends GeneratorCommand
|
||||
/**
|
||||
* Build the class with the given name.
|
||||
*
|
||||
* Remove the base controller import if we are already in base namespace.
|
||||
* Remove the base controller import if we are already in the base namespace.
|
||||
*
|
||||
* @param string $name
|
||||
* @return string
|
||||
@@ -157,6 +161,8 @@ class ControllerMakeCommand extends GeneratorCommand
|
||||
}
|
||||
}
|
||||
|
||||
$replace = $this->buildFormRequestReplacements($replace, $modelClass);
|
||||
|
||||
return array_merge($replace, [
|
||||
'DummyFullModelClass' => $modelClass,
|
||||
'{{ namespacedModel }}' => $modelClass,
|
||||
@@ -184,13 +190,73 @@ class ControllerMakeCommand extends GeneratorCommand
|
||||
throw new InvalidArgumentException('Model name contains invalid characters.');
|
||||
}
|
||||
|
||||
$model = trim(str_replace('/', '\\', $model), '\\');
|
||||
return $this->qualifyModel($model);
|
||||
}
|
||||
|
||||
if (! Str::startsWith($model, $rootNamespace = $this->laravel->getNamespace())) {
|
||||
$model = $rootNamespace.$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
|
||||
);
|
||||
}
|
||||
|
||||
return $model;
|
||||
$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 $modelName
|
||||
* @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];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -202,11 +268,13 @@ class ControllerMakeCommand extends GeneratorCommand
|
||||
{
|
||||
return [
|
||||
['api', null, InputOption::VALUE_NONE, 'Exclude the create and edit methods from the controller.'],
|
||||
['type', null, InputOption::VALUE_REQUIRED, 'Manually specify the controller stub file to use.'],
|
||||
['force', null, InputOption::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.'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,13 @@
|
||||
|
||||
namespace Illuminate\Routing\Console;
|
||||
|
||||
use Illuminate\Console\Concerns\CreatesMatchingTest;
|
||||
use Illuminate\Console\GeneratorCommand;
|
||||
|
||||
class MiddlewareMakeCommand extends GeneratorCommand
|
||||
{
|
||||
use CreatesMatchingTest;
|
||||
|
||||
/**
|
||||
* The console command name.
|
||||
*
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace {{ namespace }};
|
||||
|
||||
use {{ namespacedModel }};
|
||||
use {{ rootNamespace }}Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use {{ namespacedRequests }}
|
||||
|
||||
class {{ class }} extends Controller
|
||||
{
|
||||
@@ -21,10 +21,10 @@ class {{ class }} extends Controller
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \{{ namespacedStoreRequest }} $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
public function store({{ storeRequest }} $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -43,11 +43,11 @@ class {{ class }} extends Controller
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \{{ namespacedUpdateRequest }} $request
|
||||
* @param \{{ namespacedModel }} ${{ modelVariable }}
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, {{ model }} ${{ modelVariable }})
|
||||
public function update({{ updateRequest }} $request, {{ model }} ${{ modelVariable }})
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace {{ namespace }};
|
||||
|
||||
use {{ namespacedModel }};
|
||||
use {{ rootNamespace }}Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use {{ namespacedRequests }}
|
||||
|
||||
class {{ class }} extends Controller
|
||||
{
|
||||
@@ -31,10 +31,10 @@ class {{ class }} extends Controller
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \{{ namespacedStoreRequest }} $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
public function store({{ storeRequest }} $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
@@ -64,11 +64,11 @@ class {{ class }} extends Controller
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \{{ namespacedUpdateRequest }} $request
|
||||
* @param \{{ namespacedModel }} ${{ modelVariable }}
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, {{ model }} ${{ modelVariable }})
|
||||
public function update({{ updateRequest }} $request, {{ model }} ${{ modelVariable }})
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace {{ namespace }};
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class {{ class }}
|
||||
{
|
||||
@@ -10,10 +11,10 @@ class {{ class }}
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user