52
common/Generators/Controller/GenerateController.php
Executable file
52
common/Generators/Controller/GenerateController.php
Executable file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Common\Generators\Controller;
|
||||
|
||||
use Illuminate\Routing\Console\ControllerMakeCommand;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class GenerateController extends ControllerMakeCommand
|
||||
{
|
||||
public function handle()
|
||||
{
|
||||
if (parent::handle() !== false) {
|
||||
// add route
|
||||
$path = base_path('routes/web.php');
|
||||
if ($this->option('model')) {
|
||||
$marker = "});";
|
||||
file_put_contents($path, str_replace(
|
||||
$marker,
|
||||
"\n{$this->getRouteStub()}\n{$marker}",
|
||||
file_get_contents($path)
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function getRouteStub()
|
||||
{
|
||||
$resourceName = Str::kebab(class_basename($this->option('model')));
|
||||
$resourceComment = strtoupper(Str::title($this->option('model')));
|
||||
return str_replace(
|
||||
['dummyResourceName', 'dummyControllerName', 'dummyResourceComment'],
|
||||
[$resourceName, $this->getNameInput(), $resourceComment],
|
||||
file_get_contents(__DIR__ . '/stubs/route.resource.stub')
|
||||
);
|
||||
}
|
||||
|
||||
protected function buildClass($name)
|
||||
{
|
||||
$modelClass = $this->parseModel($this->option('model'));
|
||||
$modelName = class_basename($modelClass);
|
||||
return str_replace('DummyModelName', $modelName, parent::buildClass($name));
|
||||
}
|
||||
|
||||
protected function getStub()
|
||||
{
|
||||
if ($this->option('model')) {
|
||||
return __DIR__ . '/stubs/controller.model.stub';
|
||||
}
|
||||
|
||||
return parent::getStub();
|
||||
}
|
||||
}
|
||||
105
common/Generators/Controller/stubs/controller.model.stub
Executable file
105
common/Generators/Controller/stubs/controller.model.stub
Executable file
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
namespace DummyNamespace;
|
||||
|
||||
use Common\Core\BaseController;
|
||||
use Common\Database\Paginator;
|
||||
use Illuminate\Http\Request;
|
||||
use DummyFullModelClass;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Requests\CrupdateDummyModelNameRequest;
|
||||
use App\Actions\DummyModelName\CrupdateDummyModelName;
|
||||
|
||||
class DummyClass extends BaseController
|
||||
{
|
||||
/**
|
||||
* @var DummyModelClass
|
||||
*/
|
||||
private $DummyModelVariable;
|
||||
|
||||
/**
|
||||
* @var Request
|
||||
*/
|
||||
private $request;
|
||||
|
||||
/**
|
||||
* @param DummyModelClass $DummyModelVariable
|
||||
* @param Request $request
|
||||
*/
|
||||
public function __construct(DummyModelClass $DummyModelVariable, Request $request)
|
||||
{
|
||||
$this->DummyModelVariable = $DummyModelVariable;
|
||||
$this->request = $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$userId = $this->request->get('userId');
|
||||
$this->authorize('index', [DummyModelClass::class, $userId]);
|
||||
|
||||
$paginator = new Paginator($this->DummyModelVariable, $this->request->all());
|
||||
|
||||
if ($userId = $paginator->param('userId')) {
|
||||
$paginator->where('user_id', $userId);
|
||||
}
|
||||
|
||||
$pagination = $paginator->paginate();
|
||||
|
||||
return $this->success(['pagination' => $pagination]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DummyModelClass $DummyModelVariable
|
||||
* @return Response
|
||||
*/
|
||||
public function show(DummyModelClass $DummyModelVariable)
|
||||
{
|
||||
$this->authorize('show', $DummyModelVariable);
|
||||
|
||||
return $this->success(['DummyModelVariable' => $DummyModelVariable]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param CrupdateDummyModelNameRequest $request
|
||||
* @return Response
|
||||
*/
|
||||
public function store(CrupdateDummyModelNameRequest $request)
|
||||
{
|
||||
$this->authorize('store', DummyModelClass::class);
|
||||
|
||||
$DummyModelVariable = app(CrupdateDummyModelClass::class)->execute($request->all());
|
||||
|
||||
return $this->success(['DummyModelVariable' => $DummyModelVariable]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DummyModelClass $DummyModelVariable
|
||||
* @param CrupdateDummyModelNameRequest $request
|
||||
* @return Response
|
||||
*/
|
||||
public function update(DummyModelClass $DummyModelVariable, CrupdateDummyModelNameRequest $request)
|
||||
{
|
||||
$this->authorize('store', $DummyModelVariable);
|
||||
|
||||
$DummyModelVariable = app(CrupdateDummyModelClass::class)->execute($request->all(), $DummyModelVariable);
|
||||
|
||||
return $this->success(['DummyModelVariable' => $DummyModelVariable]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $ids
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy($ids)
|
||||
{
|
||||
$DummyModelVariableIds = explode(',', $ids);
|
||||
$this->authorize('store', [DummyModelClass::class, $DummyModelVariableIds]);
|
||||
|
||||
$this->DummyModelVariable->whereIn('id', $DummyModelVariableIds)->delete();
|
||||
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
2
common/Generators/Controller/stubs/route.resource.stub
Executable file
2
common/Generators/Controller/stubs/route.resource.stub
Executable file
@@ -0,0 +1,2 @@
|
||||
// dummyResourceComment
|
||||
Route::apiResource('dummyResourceName', 'dummyControllerName');
|
||||
Reference in New Issue
Block a user