PHP
CakePHP
cakephp3

cakephp3 bakeを使わないでMVCファイルを生成する

cakephp3

bakeは使わないでファイルを生成
大文字小文字、単数複数ついつい忘れがちなので書き留める

Model

まずは下記ファイルを生成する。(テーブル作成済みであることが前提)

テーブルをTestsとして作成していたとしたら、、
(テーブル名は必ず複数系)

ファイル名はTestsTable.phpとする
※一文字目は必ず大文字
※複数形でテーブルを作成しているので当然だがファイル名も複数形

app/src/Model/Table/テーブル名Table.php
<?php

namespace App\Model\Table;

use Cake\ORM\Table;

class UsersTable extends Table
{
    public function initialize(array $config)
    {
        $this->addBehavior('Timestamp');
    }
}

namespace名前空間は決まりきっている。
useでこのファイルで使うクラスの呼び出し
extendsで、呼び出してあるクラス(Table)を利用する

initializeで、
$this->addBehavior('Timestamp');をすることで、
データベースが更新されたときに、
自動でcreatedとmodifiedを更新してくれる

View

テーブル名でディレクトリを作成するところからやる必要がある。
例 Tests
※ここでも大文字と複数形にすることを忘れずに

app/src/Template/テーブル名/index.ctp
<h1>cakephp3サンプル</h1>

<section>
<p>サンプルです</p>
</section>

このファイルには<body>タグ内を書く

Controller

/app/src/Controller/TestsController.php
<?php

namespace App\Controller;

class TestsController extends AppController
{
  public function index()
  {
    $tests = $this->Tests->find('all');
    $this->set(compact('tests'));
  }
}

cakeのURLの決まりとして、
/(controller)/(action)/(options)
となっているので、
この場合、/tests/indexになる