【Laravel】artisanのmake:controllerコマンドを解説

チートシート

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>
Bash

Arguments

引数必須説明
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
{
    //
}
PHP

api

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)
    {
        //
    }
}
PHP

type

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)
    {
        //
    }
}
PHP

invokable

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)
    {
        //
    }
}
PHP

model

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)
    {
        //
    }
}
PHP

Stub

OptionStub file name
typecontroller.{type}.stub
parentcontroller.nested.stub
parent + singletoncontroller.nested.singleton.stub
modelcontroller.model.stub
invokablecontroller.invokable.stub
singletoncontroller.singleton.stub
resourcecontroller.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.

コメント

タイトルとURLをコピーしました