3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CakePHP Cookbook ブックマークチュートリアルの手順まとめ

Last updated at Posted at 2016-07-20

※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を再起動

スクリーンショット 2016-07-20 11.15.18.png [プロジェクトのトップ画面] スクリーンショット 2016-07-20 11.15.27.png [現時点ではデータベースを作成していないので、この項目はバツ印で問題ない]

#4.データベースの作成
##4-1.MAMPのphpMyAdminを起動する

##4-2.新規データベースを作成する
データベース名は「cake_bookmarks」とする。

スクリーンショット 2016-07-20 11.28.14.png [phpMyAdminのデータベース作成画面]

##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) );

スクリーンショット 2016-07-20 11.30.25.png [SQL文実行画面] スクリーンショット 2016-07-20 11.33.30.png [SQL文結果画面]

##4-4.テーブルが生成されているか確認する

スクリーンショット 2016-07-20 12.08.36.png [テーブル一覧]

#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/

スクリーンショット 2016-07-20 12.37.31.png [挿入箇所]

##6-3.ブラウザでプロジェクトにアクセスして動作を確認する

スクリーンショット 2016-07-20 12.39.17.png [プロジェクト実行画面]

(続く)

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?