文系Webエンジニアの技術メモとたまに旅のメモ

未経験文系エンジニアとして働いてます。アウトプットとして簡単に技術メモを残していきます。たまに旅関係のも趣味で残していこうと思ってます。

【CakePHP3系/bake】コマンド1つで、Controller、Model、Templateの作成ができる!

今回は、CakePHP3系のbakeのやり方を記していきます。
bakeコマンドを使用することで、必要なファイルを自動で作成できるので
時間の短縮になるので、ぜひ覚えて使っていきましょう!

1.開発環境

CakePHP:3.8.13
MAMP:5.7
PHP:7.4.2
MySQL:5.7.26

※CakePHP3系であればbakeコマンドは使用できます。

2.事前準備

bakeコマンドを実行するには、新規テーブルが必要になります。

今回は、下記テーブルを使用します。

-- ユーザー
CREATE TABLE users (
    id INT(11) AUTO_INCREMENT,
    department_id INT(11),
    user_name VARCHAR(50) NOT NULL,
    email VARCHAR(255),
    password VARCHAR(255) NOT NULL,
    created DATETIME NOT NULL,
    modified DATETIME NOT NULL,
    del_flg INT(1) DEFAULT 0,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

データは無くても問題ないですが、画面表示した際にあった方が見た目が良いので入れておきましょう。

初期データとしてこちらを入れておきます。

-- ユーザー
INSERT INTO `users` (`id`, `department_id`, `user_name`, `email`, `password`, `created`, `modified`, `del_flg`) VALUES
(1, 1, 'テストユーザー1', 'example1@example.com', 'test1', '2020-07-01 22:09:07', '2020-07-01 22:54:05', 0),
(2, 2, 'テストユーザー2', 'example2@example.com', 'test2', '2020-07-01 02:11:57', '2020-07-01 02:11:57', 0),
(3, 3, 'テストユーザー3', 'example3@example.com', 'test3', '2020-07-01 02:11:57', '2020-07-01 02:11:57', 0),
(4, 1, 'テストユーザー4', 'example4@example.com', 'test4', '2020-07-01 02:11:57', '2020-07-01 22:54:19', 0);

これでテーブルの事前準備は完了です。

3.プロジェクトのルートディレクトリに移動

bakeコマンドを実行するために、CakePHP3のルートディレクトリに移動します。

cd {パス}/{プロジェクトディレクトリ}

4.bakeコマンドの実行

ルートディレクトリに移動したら、bakeコマンドを実行していきます。
bakeコマンドは下記のように使用していきます。

php bin/cake.php bake {bakeするMVCの内容} {テーブル名}

5.Controllerの作成

Controllerのみ作成する場合は、下記コマンドを実行します。

php bin/cake.php bake controller users

6.Modelの作成

Modelの作成する場合は、下記コマンドを実行します。
EntityとTableが作成されます。

php bin/cake.php bake model users

7.Templateの作成

Templateのみ作成する場合は、下記コマンドを実行します。
こちらの4画面が作成されます。
・一覧画面:index.ctp
・詳細画面:view.ctp
・新規画面:add.ctp
・編集画面:edit.ctp

php bin/cake.php bake template users

8.Controller、Model、Templateを一気に作成

1回のコマンドでController、Model、Templateを作成する場合は、下記コマンドを実行します。

php bin/cake.php bake all users

8.実行後の画面

bakeし作成した画面を確認してみましょう。

「{URL}/Users」 でブラウザにアクセスします。

一覧画面

f:id:igarashi44:20200702021530p:plain

詳細画面

f:id:igarashi44:20200702021548p:plain

新規画面

f:id:igarashi44:20200702021603p:plain

編集画面

f:id:igarashi44:20200702021619p:plain


bakeが完了した時点である程度の機能は既に出来ていますね!
JOINしなくて良いマスタ画面であれば少し修正したら完成出来そうです!

テーブルが追加された場合でもbakeできるので、ぜひbakeコマンドを覚えていきましょう!