前提条件
xammppがインストールしてあること。(php8.0に対応しているバージョン。2021年11月時点での最新版)手順
$ exec winpty bash
$ php -r "readfile('https://getcomposer.org/installer');" | phpすると作業ディレクトリにcomposer.pharファイルが作成され、Composerがつかるようになる。
$ php composer.phar create-project --prefer-dist cakephp/app:4.* my_app_namemy_app_nameは任意のプロジェクト名しても良い。
http://localhost/my_app_name
下記ページが表示されれば成功xamppのMySQLである場合「ルート/config/app.php」と同じディレクトリにある「app_local.php」の両方にDB設定をする。( 参考:app.phpとapp_local.phpについて)
localhostの場合
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'host' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'hoge',
'url' => env('DATABASE_URL', null),
],
略 ...
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'mysql999.db.sakura.ne.jp',
'username' => 'hoge',
'password' => 'abcdefg123',
'database' => 'hoge_animal',
'url' => env('DATABASE_URL', null),
],
動き
app.phpにapp_local.phpの設定値が上書きされるという仕組みになっている。違い
app.phpはすべての環境で共通する設定を記述。デフォルトでGitHubの管理対象になっている。なぜ2つに分かれているのか?
app.phpにはDBのパスワードも記述している。応用
【localhost環境】
$connection = ConnectionManager::get('default');
$results = $connection->execute('SELECT * FROM nekos')->fetchAll('assoc');
$connection = ConnectionManager::get('default');
$row = $connection->execute('SELECT * FROM nekos')->fetch('assoc');
$ bin/cake bake all テーブル名
手順
cd git/crud_base_cake4
$ bin/cake bake all nekosnekosテーブルに関連したコントローラ、モデル、ビューなどが自動生成される。
http://localhost/crud_base_cake4/app/nekos
$this->getRequest()->getSession()->write('animal_name', 'ネコ');
$animal_name = $this->getRequest()->getSession()->read('animal_name');
$this->getRequest()->getSession()->delete('animal_name');
$res = $this->getRequest()->getSession()->check('animal_name');
※$resはbool型