Laravel 10.xのartisanの「make:controller」コマンドと、そのオプションを解説します。
Description
新しいコントローラクラスを作成します。
オプションによってメソッドの作成をしたり、Modelから作成したりすることができます。
また、リソースやテストを同時に作成することもできます。
Usage
php artisan make:controller [--api] [--type TYPE] [--force] [-i|--invokable] [-m|--model [MODEL]] [-p|--parent [PARENT]] [-r|--resource] [-R|--requests] [-s|--singleton] [--creatable] [--test] [--pest] [--] <name>
BashArguments
引数 | 必須 | 説明 |
---|---|---|
name | 必須 | コントローラー名 |
Options
オプション | 省略形 | 必須 | 説明 |
---|---|---|---|
api | - | - | コントローラからcreateメソッドとeditメソッドを除外する |
type | - | - | 使用するコントローラのスタブファイルを手動で指定します。 |
force | - | - | コントローラーが既に存在する場合でも、クラスを作成する |
invokable | - | - | 単一メソッドで起動可能なControllerクラスを生成する。 |
model | - | - | 与えられたモデルのリソースコントローラを生成する |
parent | - | - | ネストしたリソースコントローラクラスを生成する |
resource | - | - | リソースコントローラクラスを生成する |
requests | - | - | ストアとアップデートのためのFormRequestクラスを生成する。 |
singleton | - | - | シングルトンリソースコントローラクラスを生成する |
creatable | - | - | シングルトンリソースが作成可能であることを示す。 |
test | - | - | Controllerに付随するPHPUnitのテストを生成します。 |
pest | - | - | Controllerに付随するPestテストを生成する。 |
Examples
no options
空のコントローラを作成します。
php artisan make:controller FooController
Bash INFO Controller [app/Http/Controllers/FooController.php] created successfully.
Bash<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FooController extends Controller
{
//
}
PHPapi
php artisan make:controller --api FooController
Bash INFO Controller [app/Http/Controllers/FooController.php] created successfully.
Plaintext<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FooController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}
PHPtype
controller.TYPE
.stubファイルを利用してControllerのコードを作成します。
デフォルトに存在しないものの場合は、stubs/以下にファイルを作成したものが利用可能です。
どのようなファイルがあるかはstub:publishで出力して確認してみてください。
php artisan make:controller --type api FooController
Bash INFO Controller [app/Http/Controllers/HogeController.php] created successfully.
Plaintext<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FooController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}
PHPinvokable
php artisan make:controller --invokable FooController
Bash INFO Controller [app/Http/Controllers/FooController.php] created successfully.
Plaintext<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FooController extends Controller
{
/**
* Handle the incoming request.
*/
public function __invoke(Request $request)
{
//
}
}
PHPmodel
php artisan make:controller --model=User FooController
Bash INFO Controller [app/Http/Controllers/FooController.php] created successfully.
Plaintext<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class FooController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(User $user)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(User $user)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, User $user)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(User $user)
{
//
}
}
PHPStub
Option | Stub file name |
---|---|
type | controller.{type}.stub |
parent | controller.nested.stub |
parent + singleton | controller.nested.singleton.stub |
model | controller.model.stub |
invokable | controller.invokable.stub |
singleton | controller.singleton.stub |
resource | controller.stub |
api + 上記に当てはまらない | controller.api.stub |
api + 上記に当てはまる | 上記の名前.api.stub |
デフォルト | controller.plain.stub |
Source
10.x
framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php at 11.x · laravel/framework
The Laravel Framework. Contribute to laravel/framework development by creating an account on GitHub.
11.x
framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php at 11.x · laravel/framework
The Laravel Framework. Contribute to laravel/framework development by creating an account on GitHub.
コメント