CodeIgniter4のコードジェネレータ

この記事は CodeIgniter Advent Calendar 2020 - Qiita の7日目です。まだ、空きがありますので、興味のある方は気軽に参加してください。

CodeIgniter 4.0.4 には含まれていないコードジェネレータが、最新の開発版には含まれています。

(2021-02-23 追記) コードジェネレータはCodeIgniter 4.0.5以降に含まれています。

CodeIgniter4 開発版への変更

codeigniter4/appstarter から CodeIgniter4 をインストールした場合、以下のコマンドを実行すると、最新の開発版に変更できます。

$ php builds development
$ composer update

なお、リリース版に戻すには、builds release コマンドを使います。

$ php builds release
$ composer update

Generators コマンドの確認

spark list コマンドでコマンドの一覧を確認できます。

以下の Generators があります。

$ php spark list
...
Generators
  make:command       Creates a new spark command.
  make:controller    Creates a new controller file.
  make:entity        Creates a new entity file.
  make:filter        Creates a new filter file.
  make:migration     Creates a new migration file.
  make:model         Creates a new model file.
  make:scaffold      Creates a complete set of scaffold files.
  make:seeder        Creates a new seeder file.
  migrate:create     [DEPRECATED] Creates a new migration file. Please use
                     "make:migration" instead.
  session:migration  Generates the migration file for database sessions.

spark help コマンドでヘルプを表示できます。

$ php spark help make:controller

CodeIgniter v4.0.4 Command Line Tool - Server Time: 2020-12-08 20:00:09 UTC+09:00

使用法:
  make:controller <name> [options]

説明:
  Creates a new controller file.

引数:
  name  The controller class name

オプション:
  --bare     Extends from CodeIgniter\Controller instead of BaseController
  --restful  Extends from a RESTful resource. Options are 'controller' or 'presenter'.
  -n         Set root namespace. Defaults to APP_NAMESPACE.
  --force    Force overwrite existing files.

コントローラの作成

試しに Welcome コントローラを作成してみましょう。

$ php spark make:controller Welcome

CodeIgniter v4.0.4 Command Line Tool - Server Time: 2020-12-08 20:02:00 UTC+09:00

Created file: APPPATH/Controllers/Welcome.php

以下のファイルが作成されました。

app/Controllers/Welcome.php

<?php

namespace App\Controllers;

use App\Controllers\BaseController;

class Welcome extends BaseController
{
    public function index()
    {
        //
    }

}

なお、開発版のドキュメントは以下にあります。

この記事は CodeIgniter Advent Calendar 2020 - Qiita の7日目です。まだ、空きがありますので、興味のある方は気軽に参加してください。

参考

Date: 2020/12/07

Tags: codeigniter, codeigniter4