備忘録

webの備忘録のために

CakePHP bakeその1

bakeコマンドについて。

CakePHPMVCについて基本わかれば一通り使えるようになる。 がそれぞれのファイルを生成し、ソースコードを書かなければならない。

「細かいことはいいから、取り敢えず動いてくれるものを作れればおk」そんな時はbakeコマンド。

bakeコマンド
bin/cake bake 対象 名前

基本的な対象はこちら。

「対象」
all:MVC一式を作成
controller:コントローラを生成
model:モデルを生成
template:テンプレートを生成
test:ユニットテストを生成

bin/cake bake model boards

こんな感じに実行するとBoardsTable.phpとBoard.phpを自動生成。

対象をallで実行すると

bin/cake bake all books

こちらのファイル全てが生成される。

で、生成されたBooksTable.phpの中身を見ると

<?php
namespace App\Model\Table;

use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Table;
use Cake\Validation\Validator;

class BooksTable extends Table
{

    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->table('books');
        $this->displayField('title');
        $this->primaryKey('id');
    }

    public function validationDefault(Validator $validator)
    {
        $validator
            ->integer('id')
            ->allowEmpty('id', 'create');

        $validator
            ->allowEmpty('title');

        $validator
            ->allowEmpty('author');

        $validator
            ->integer('price')
            ->allowEmpty('price');

        return $validator;
    }
}

で、最初からinitializeとvalidationDefalutというメソッドが生成されている。

initialize:テーブル名、表示する項目、プライマリキーなどの設定 validationDefalut:値の検証に関する処理を用意。