CakePHP 4.0.0-RC1 を composer でインストール
はじめに
先日、ついにCakePHP 4.0.0-RC1 が公開されました。
- Release CakePHP 4.0.0-RC1 released ・ cakephp/cakephp ・ GitHub
- https://github.com/cakephp/cakephp/releases/tag/4.0.0-RC1
RC とは Release Candidate の略で「正式リリース候補版」という意味です。正式リリースまでのバージョニングは、一般的に、アルファ版 → ベータ版 → RC → 正式リリース(STABLE) となります。
- セマンティック バージョニング 2.0.0 | Semantic Versioning
- https://semver.org/lang/ja/#spec-item-11
CakePHP 4 のリリースもいよいよ近づいてきましたね。
そこで、正式リリースへの準備も兼ねて CakePHP 4.0.0-RC1 を触ってみたので、今日はその composer を使ってのインストール方法をご紹介します。
※ CakePHP 4 のインストールには PHP 7.2 以上が必要です。
- XAMPP
- 7.3.5
- PHP
- 7.3.5
- OS
- Win 10 Home 64Bit
1. インストール
CakePHP 4.0.0-RC1 をインストールするには下記コマンドを実行します。
> composer create-project --prefer-dist "cakephp/app:4.0.0-RC1" cms
CakePHP 4 の Cookbook も用意されていて、そこにインストール方法も書かれているのですが、そのコマンドを実行すると、今はまだ CakePHP 3 がインストールされるのでご注意ください。
- Content Management Tutorial - 4.next
- https://book.cakephp.org/4/en/tutorials-and-examples/cms/installation.html#getting-cakephp
ところで、公式ドキュメントに無い上記コマンドをどうやって見つけたかですが、CakePHP 4.0.0-RC1 のリリース文にある下記コマンドと、CakePHP 3 のインストールコマンドを組み合わせて試したところ、うまくいったものです。
php composer.phar require --update-with-dependencies "cakephp/cakephp:4.0.0-RC1"
2. データベース設定
CakePHP 3 との違いとして、config/app_local.php というファイルがあります。ファイル上部にあるコメントブロックを読むと、これは、app.php に書かれている設定を app_local.php の内容で上書きしてくれるようです。
これは結構便利だと思います。
CakePHP3 までは app.php しかなく、変更を加える場合は app.default.php にも同じコードをコピーして、Gitリポジトリにプッシュする必要がありました。
また他者が変更を加えた場合には、その差分を自分で app.php に適用する必要があります。app_local.php で上書きという仕組みは、効率的で良いですね。
さて、前置きが長くなりましたが、データベースの設定は app_local.php に記述します。
'Datasources' => [
'default' => [
'host' => 'localhost',
/*
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'my_app',
上記コードは便宜上、インデントを半角スペース2個にしていますが、CakePHP のコーディング規約では4個です
3. 動作確認
作成したプロジェクトにアクセスして、下記のような画面が出たら完了です。
下図のように、Database の箇所が「CakePHP is able to connect to the database.」であればOKです。
(もし異なっていればデータベースに接続できていません)