##この記事に書いてあること
・ドットインストールのCakePHP3レッスン(最終更新2015年)について
・2021年に今更上記レッスンで勉強した感想
・CakePHPの仕様変更などで詰まった(レッスン通りに行かなかった)ところ
・詰まったところの解消方法
などなど
##今更でもCakePHP
PHPやるならLaravelが王道の世の中。
時代に逆行?してBaking Cakeといきます。
筆者のPHP経歴はWordpressのみ。
つまり無いに等しいけど基本文法くらいはわかるレベル。
こんなので美味しいケーキができるのかしら??
##初学者は黙ってドットインストール()
CakePHPの勉強を始めるにあたって、
まずどの媒体を選ぶかという問題にぶつかりました。
本、公式チュートリアル、ネットの記事、etc...
CakePHPは歴史が長いようで色々と選択肢はありましたが、
正直どれも情報が古く、本も最近の改訂版はなさそう。
(そもそもCakePHPのサポートが終了しているのでそりゃそうか)
数千円する本を買ってコードが動かない時、
自分で解消する力があればよいのですが、初学者はそうはいかないもの。
公式チュートリアルを勧める方もいるけど、
あれ、ド初心者には正直何書いてるかわかんないって。
まずは手軽にドットインストールでいいでしょう。
##筆者の開発環境
項目 | 情報 |
---|---|
OS | macOS |
パッケージ管理 | Homebrew 3.3.6 |
#01 CakePHPを使ってみよう
・CakePHPとは
・開発環境の確認
・intl拡張の確認
・ipアドレスの確認
###詰まったポイント
####intl拡張が入ってない
レッスンではintl拡張が使えるか確認する際にyumを使用します。
yum list | grep intl
(筆者はそもそもyumは使っていないのでnot foundになりましたが。)
そもそも、調べると、intl拡張はPHP5.3.0以降、同梱されているとのこと。
https://www.php.net/manual/ja/intl.installation.php
phpコマンドは使えるのに入ってないのはなぜ。。。となりましたが、
macデフォルトのPHPではintl拡張が入ってないらしい。
brewでPHPを入れなおしましょ。
brew install php@7.4
これでおk。
パスを通すなどは割愛。
####ipコマンド使えない
macではifconfig
が ip
に相当するコマンドのようなので、
ifconfig en0
で出てきました。
#02 設計の特徴を理解しておこう
CakePHPの設計の特徴について
・MVCモデル
・CoC ... Convention over Configuration(設定よりも規約)
今は深く掘り下げずにサラッと流しましたが、理解は必須ですね。
#03 データベースの設定をしていこう
・MySQLの設定
・SQLの実行
###詰まったポイント
####mysqlが入っていない
一番わかり易いのはいつだってprogate。
https://prog-8.com/docs/mysql-env
こちらもbrewで入れていますね。
progateのドキュメントどおりに進めればOK
#04 CakePHPをインストールしよう
Composerを使ったCakePHPをインストールについて
・Composerのインストール
・CakePHPのインストール
・ブラウザでの確認
###詰まったポイント
####composerのインストールもbrewでいいよね
レッスンではComposer公式サイトに記載のcurlで導入していましたが、
こちらもbrewで良いでしょう。
brew install composer
composer導入後はCakePHPのプロジェクトを作成し、
ブラウザでwelcome to CakePHPを確認。
#05 アプリケーションの設定をしていこう
・cakePHPの初期設定
・bakeコマンド
###詰まったポイント
config/app.phpを変更してもデータベースに接続できない
config/app.phpのDatasources
に先のレッスンで作成したデータベースの情報を記載していくのですが、
いくら変更しても
CakePHP is able to connect to the database.
と表示されません。
そこで調べたところ、app.phpではなく、
同じディレクトリにあるapp_local.php
というファイルの記述を変更しなければいけないようでした。
configディレクトリをよく見てみると似た名前ファイルが3つありますが、
app.php #以降 app と呼ぶ
app_local.example.php
app_local.php #以降 app_local 呼ぶ
CakePHP3まではapp以外のファイルはなかったようで、
appだけで設定を行っていたらしいです。
(ドットインストールのレッスンはCakePHP3なので違った)
この点について詳しくはこちらのサイトを参考にしましたmm
CakePHP4のapp_local.phpを掘り下げてみる
app_local.phpの仕組み
config/app.phpを読み込んだ後、config/app_local.phpが存在すれば追加読み込みをするという仕組みになっています。
app_localを開いて見ると、
appと同じような内容が記述されており、
レッスン通りappを編集してもapp_localでの同箇所の設定が優先され、
編集は反映されないということですね。。
(優先なのか上書きなのか気になるところ)
###レッスン最後でbake!
05のレッスンの最後ではデータベースの情報をもとにbakeし、コードを自動生成!!
bin/cake bake all databasename
筆者はこれメチャクチャ感動しました!!!!
UIもだけど投稿機能まで自動で焼き上がってる!まじか!!
スゲーーーー!!!!(大興奮)
##ドットインストール無料版はここまで
筆者がCakePHPで盛り上がってきたところですが、
#06からはプレミアム会員にならねば観れません。
これから課金し、引き続き学習予定です!
続きは次の記事に書くことにします。
ではではノシ