Cakephp3のチュートリアルブログ作成をやってみる-1

cakePHP3

Written by:

前回の記事で作成したシステムを流用する

データベース設定

データベースを作成

下記のテーブルとサンプルデータの挿入

https://book.cakephp.org/3.0/ja/tutorials-and-examples/blog/blog.html

 

config/app.php を編集

DBのユーザー名とDB名

cakeのスタート画面でDBの説明のところのアイコンが緑になればOK。(あれ?接続できてない)

MAMPのスタートページで確認したところCakeの設定ファイルに記載したパスワーが間違っていたので変更。再読み込みをかけたら無事接続できました

記事モデル作成

チュートリアルにあったコマンドを利用してモデルを作成しようとしたらエラーが出て作成できませんでした

コマンド

bin/cake bake model Articles

エラー

PHP Fatal error: You must enable the intl extension to use CakePHP.

intlと言うPHPの拡張子がない事が原因で引っかかっているぽいので入れようとしたのですが、多くのサイトに書かれていた下記のコマンドはHomebrewのアップデートにより使えなくなっていました

brew install php72-intl

すでに入っているPHPを削除して入れ直すしか方法は無いようです

入っているものの確認

$ brew list | grep php

php70
php@7.0

2つヒットしたのでとりあえず2つとも削除します

$ brew uninstall php70 php@7.0

homebrew/phpも削除します

brew untap homebrew/php

PHP7.2を新規インストールします(ちょっとかかります)

brew install php@7.2

注意点として、このコマンドではインストールはしますがパスは自分で通す必要があります。以下のようなメッセージが表示されるのでechoのところ2つを丸っとコピーしてインストールが終わったタイミングでターミナルで実行します

If you need to have php@7.2 first in your PATH run:
echo ‘export PATH=”/usr/local/opt/php@7.2/bin:$PATH”‘ >> ~/.bash_profile
echo ‘export PATH=”/usr/local/opt/php@7.2/sbin:$PATH”‘ >> ~/.bash_profile

~/.bash_profileファイルに上記2つのコマンドが記載されればOK

 

気を取り直してbin/cake bake model Articlesでモデルを作ろうとしたところ今度は別のエラーが発生

One moment while associations are detected.
Exception: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client in [/Applications/MAMP/htdocs/blog/vendor/cakephp/cakephp/src/Database/Driver.php, line 92]

cakeのスタート画面ではDB接続できている感じになっていたのですが、ソケットが見つからないらしい

config/app.phpファイルの’Datasources’ => [という欄に下記を追記

‘unix_socket’ => ‘/Applications/MAMP/tmp/mysql/mysql.sock’,

うまくいきました

作成したモデルファイルなどの編集は次回

(cake意外とめんどくさいぞ!)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です