ワンコインで買った教材で 2ヶ月間 CakePHP を勉強したので紹介する

CakePHP を勉強するにあたり、本屋で参考書をぱらぱらと見ていたのですがあまりしっくりくるものがなく、
Kindle にて無料で読める教材をとりあえず使ってみたら案外よかったので紹介させてもらいます！

#目次
[1. 教材の紹介](#2-教材の紹介)
[2. 良い点/悪い点](#2-良い点/悪い点)
[3. 環境構築メモ](#3-環境構築メモ)
[4. 感想](#4-感想)

#1. 教材の紹介

では、さっそくですが教材の方を紹介させていただきます。
「CakePHP3 ビギナーズガイド:最新のPHPフレームワークをマスターせよ！」

https://www.amazon.co.jp/CakePHP3-%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89-%E6%9C%80%E6%96%B0%E3%81%AEPHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%92%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%9B%E3%82%88%EF%BC%81-PRIMER%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-libro%E3%83%96%E3%83%83%E3%82%AF%E3%82%B9-ebook/dp/B017UPRRDA/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=14LNSH2Y1NWOU&keywords=cakephp+%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89&qid=1639888346&sprefix=cakephp+%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E3%82%AC%E3%82%A4%E3%83%89%2Caps%2C229&sr=8-1

![CakePHP3_ビギナーズガイド.png.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560824/565f30dc-a4e6-f0f2-5166-382938fe0742.jpeg)

>##目次
>
>1. Webアプリケーション作成の基本を覚えよう
>
>2. コントローラー（Controller）を利用する
>
>3. コントローラーとビュー
>
>4. フォームヘルパーを利用する
>
>5. モデルとデータベース
>
>6. CRUDの基本について
>
>7. データベース検索の基本
>
>8. データ検索をマスターする！
>
>9. ページネーション
>
>10. バリデーションをマスターする
>
>11. 複数テーブルの連携
>
>12. アソシエーション利用のデータアクセス（1）
>
>13. アソシエーション利用のデータアクセス（2）
>
>14. bakeによるコードの自動生成
>
>15. レイアウトの作成

#2. 良い点/悪い点

###良い点
**・安い！**
Kindle会員であれば、無料。会員でなくても390円です！

**・量がちょうどいい**
ページ数が260ページと2ヶ月もあれば十分な量です。
また、内容もMVCモデルやデータベース、バリデーションと一通り CakePHP について理解できるものでした。

**・1つのシステムを作りながら学習を進められる**
各章を進めていくことで1つのシステムが出来上がっていくので、モチベーションを維持しつつ学習を進めることができます。

###悪い点
**・初心者向きではない**
あくまで CakePHP の基本をサラッと学ぶような感じだと思います。
説明も全体的にシンプルで、初めてプログラミングをする方には難しいのかなと感じました。
また、より深くがっつり CakePHP を学習したいと考えている方には物足りない内容かと思います。

**・少し古い**
発売日が 2015 年なので、最新というわけではないです。
また、対象のバージョンも CakePHP3 なので、CakePHP4 を学びたいと考えている方だと教材通りのコードではうまく動かない場合があります。
今回、私は CakePHP4 を使いましたがやはりいくつかエラーがでる箇所がありました。

#3. 環境構築メモ
プログラミングの学習をするうえで最も厄介なのが、環境構築。
ということで、今回私が学習するうえで行った環境構築をメモしておきます。
とは、言いつつほとんどは参考書に書かれている通りに進めれば問題ないと思います。

**・Composer**
PHP のライブラリ管理ツールです。これを利用して CakePHP を使います。
下記、URL のサイトから「Download」リンクをクリック、「Composer-Setup.exe」からインストーラをダウンロードします。
https://getcomposer.org/

**・ZAMPP**
開発環境パッケージに ZAMPP を使用しました。バージョンは「7.3.31」です。
https://www.apachefriends.org/jp/index.html

また、データベースに MySQL を使用する場合はインストール時に MySQL にチェックを入れます。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1560824/026179f3-420e-db7f-892d-5d5be4575b51.png)

プロジェクト作成後、config\app.php にて MySQL の設定を記載します。

```
'Datasources' => [
    /*
    ...
     */

    'default' => [
        /*'className' => Connection::class,
         *'driver' => Mysql::class,
         *'persistent' => false,
         *'timezone' => 'UTC',
        */
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'mcb',
        'encoding' => 'utf8mb4',
        'timezone' => 'UTC',
        'cacheMetadata' => true,
        'port' => '3306',

        /*
        ...
         */
        //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
    ],
```

#4. 感想
いつも勉強を始めるときは、参考書をじっくり選んで始めていたので
今回も「 良い参考書が見つかるまでの間、使うか 」
と思い購入しましたが、気づけば2ヶ月使用していました笑

ある程度プログラミングを触ったことがある人であれば好きなものを開発する方が勉強になるので
今回のようにお金をかけずに、まずは環境構築と基本を押さえるというやり方はよかったなと
自分の中での新たな発見になったので書かせていただきました。