※Qiitaには初投稿です、よろしくお願いします。
CakePHP の学習のため「CakePHP Cookbook ブックマークチュートリアル」をやってみたので、その時の手順をまとめました。
構築する環境によっては、エラーなどが発生しチュートリアル通りにいかない場合もあるので、同じところでハマった人のお役に立てれれば幸いです。
■CakePHP Cookbook ブックマークチュートリアル
http://book.cakephp.org/3.0/ja/tutorials-and-examples/bookmarks/intro.html
#0.前提環境
-ローカル端末環境で行った(MacBook Pro OS X El Capitan バージョン 10.11.6)
-ウェブサーバとデータベースは MAMP を使用した(MAMP3.5、PHP 7.0)
#1.事前準備
##1-1.PHPのバージョンを確認する
PHP 5.5.9 以上であること。
php -v
##1-2.MAMPのhtdocs配下に作業用のフォルダを作成する
フォルダ名は任意。今回は「cookbook」とした。
mkdir cookbook
##1-3.作業用のフォルダに移動する
cd cookbook
#2.CakePHP の取得
##2-1. composer をインストールする
10秒ほど待つ。
curl -s https://getcomposer.org/installer | php
##2-2.cakePHPのプロジェクトを作成する
プロジェクト名は「bookmarker」。1分ほど待つ。
php composer.phar create-project --prefer-dist cakephp/app bookmarker
#3.インストールの確認
##3-1.MAMPを起動する
##3-2.ブラウザでプロジェクトにアクセスできることを確認する
※ブラウザアクセス時にエラーが表示された場合
・MAMPを一旦停止する
・下記のブログ記事を参考に「php.intl」を追加インストールする
■CakePHP3 Composerでインストールしたらautoload.phpが読み込めないエラーが出た
http://chaika.hatenablog.com/entry/2015/11/03/150934
brew install homebrew/php/php70-intl
・MAMPを再起動
[プロジェクトのトップ画面] [現時点ではデータベースを作成していないので、この項目はバツ印で問題ない]#4.データベースの作成
##4-1.MAMPのphpMyAdminを起動する
##4-2.新規データベースを作成する
データベース名は「cake_bookmarks」とする。
##4-3.データベースにテーブルを設定する
テーブルは「users」、「bookmarks」、「tags」、「bookmarks_tags」の計4つ。
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, created DATETIME, modified DATETIME );
CREATE TABLE bookmarks ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(50), description TEXT, url TEXT, created DATETIME, modified DATETIME, FOREIGN KEY user_key (user_id) REFERENCES users(id) );
CREATE TABLE tags ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), created DATETIME, modified DATETIME, UNIQUE KEY (title) );
CREATE TABLE bookmarks_tags ( bookmark_id INT NOT NULL, tag_id INT NOT NULL, PRIMARY KEY (bookmark_id, tag_id), FOREIGN KEY tag_key(tag_id) REFERENCES tags(id), FOREIGN KEY bookmark_key(bookmark_id) REFERENCES bookmarks(id) );
##4-4.テーブルが生成されているか確認する
[テーブル一覧]#5.データベースの設定
##5-1.config/app.php の「Datasources.default」配列の値を以下の通り変更する
'username' => '(データベースのユーザー名)',
'password' => '(データベースのパスワード)',
'database' => (データベース名:cake_bookmarks)',
##5-2.ブラウザでプロジェクトにアクセスし、Databaseの項目のエラーがなくなっていることを確認する
http://localhost:8888/cookbook/bookmarker/
#6.Scaffoldコードの生成
##6-1.ターミナル上でプロジェクトフォルダに移動する
cd bookmarker
##6-2.ターミナル上で以下のコマンド(3つ)を入力する
bin/cake bake all users
bin/cake bake all bookmarks
bin/cake bake all tags
※「SQLSTATE[HY000] [2002] No such file or directory」というエラーメッセージが表示されたら、以下のブログ記事を参考に config/app.php の「Datasources.default」配列に以下の行を追加する
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
[挿入箇所]■MAMP環境でのCakePHPのmysql.Sockの指定方法
http://blog.10rane.com/2013/02/04/mamp-cakephp-mysql/
##6-3.ブラウザでプロジェクトにアクセスして動作を確認する
[プロジェクト実行画面]
(続く)