cakephp3をggrつつ触ってみる!! その1 環境構築編


目次

1. composerでmac osにインスコ 
2. cakeboxで表示
3. 2.x系と3.0.4比べてみました〜
4. チュートリアルやってみる



###cakephp3が出て触ってみたかったのでメモる

ここにあったbookmarkerのチュートリアルをやってみます
http://book.cakephp.org/3.0/en/tutorials-and-examples/bookmarks/intro.html

php5.5 php intl pear composerがいりますね
cakephp/cakephp 3.0.x-dev requires ext-intl * -> the requested PHP extension intl is missing from your system.

	curl -s https://getcomposer.org/installer | php

	php composer.phar create-project --prefer-dist cakephp/app bookmarker

(tapする必要がある方はこちらを参照
http://qiita.com/boheanimato/items/0b665f84b80df5fa54fd)

セキュリティサルトとかpermissionとか勝手にやってくれるという神具合

cake2だとこの辺面倒臭かった、、、、

もしintlがなかったら以下を試してみてくだされ
	
	php install php55/intl (既に入ってる人はいいです!!)
	
	To finish installing intl for PHP 5.5:
  * /usr/local/etc/php/5.5/conf.d/ext-intl.ini was created,
    do not forget to remove it upon extension removal.
  * Validate installation via one of the following methods:
  *
  * Using PHP from a webserver:
  * - Restart your webserver.
  * - Write a PHP page that calls "phpinfo();"
  * - Load it in a browser and look for the info on the intl module.
  * - If you see it, you have been successful!
  *
  * Using PHP from the command line:
  * - Run "php -i" (command-line "phpinfo()")
  * - Look for the info on the intl module.
  * - If you see it, you have been successful!


上のメッセージが出るので php -iで確認してみて下さい


そして cd bookmaker に移動して

	bin/cake server
 
  して(rails -s的なあれ)
  
  ![スクリーンショット 2015-08-31 9.58.08.png](https://qiita-image-store.s3.amazonaws.com/0/31272/7f286df7-25ed-312d-8cdc-236be152e5f8.png "スクリーンショット 2015-08-31 9.58.08.png")

	
この画面が表示されたら　OK!!

既にdebug　toolが入ってる有能具合（まあ普通あるかw）

ただ、database not connectになってると思うので
![スクリーンショット 2015-08-31 10.03.49.png](https://qiita-image-store.s3.amazonaws.com/0/31272/b0a1570e-e4c0-87eb-d694-57e78a0dd904.png "スクリーンショット 2015-08-31 10.03.49.png")


###vagrant virtual boxを使って環境構築してあげましょう!!

既に環境構築していて　俺はいらねーぜって方はちょっと読み飛ばして頂いて結構です!!


ここで便利なcakeboxを使いましょう（さっき見つけたw）

https://github.com/alt3/cakebox

要件は以下なのでアップデートしてない人はしておいてくだされ

VirtualBox 4.0 or higher
Vagrant 1.6.0 or higher
a machine with at least 4GB of memory and 2 Cores

cakeboxはchefでubuntuベースのboxファイルを生成してくれるみたいです。

詳細は以下
http://cakebox.readthedocs.org/en/latest/features/


でルートdirで　おもむろに

	git clone https://github.com/alt3/cakebox.git

	cd cakebox
	cp Cakebox.yaml.default Cakebox.yaml
	
	vagrant up



sshしたら

/Users/kosuke.tanihata/cakebox% vagrant ssh
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-24-generic x86_64)


	  ____      _        ____
	 / ___|__ _| | _____| __ )  _____  __
	| |   / _` | |/ / _ \  _ \ / _ \ \/ /
	| |__| (_| |   <  __/ |_) | (_) >  <
	 \____\__,_|_|\_\___|____/ \___/_/\_\


って出ると思います。かっけーですね

mysql nginxがすでに入ってる　いいね　php は 5.6でした
細かい構成は以下!!

![スクリーンショット 2015-08-31 10.51.10.png](https://qiita-image-store.s3.amazonaws.com/0/31272/f898a4c0-fb3d-8fd8-40c7-b902cc56d3bf.png "スクリーンショット 2015-08-31 10.51.10.png")

db は　mysql だけでログイン可能


laravelのhomestead意識していたりするのかな??

んで http://10.33.10.10/dashboard にログインすると、、、



![スクリーンショット 2015-08-31 11.51.42.png](https://qiita-image-store.s3.amazonaws.com/0/31272/0d82b155-4bf9-6b44-b639-01b49a968bbe.png "スクリーンショット 2015-08-31 11.51.42.png")

**もうできてる、、、、、**　

(ちなみに同じdirに別のcakeのプロジェクト入れたらsslエラーが出たので cakeboxいれて立ち上がるの確認してからappディレクトリの中に作った方がいいかもしれません　要検証　わかった人いたらこっそり教えて下さい)


vagrant ssh した所に おもむろに

	cakebox application add mycake3.app 
	
って打つだけでプロジェクトが生成されます!!
(mycake3.appは各自リネームしてください!!)
そして vmではない方のcakeboxディレクトリの中のAppsって所と共有される設定になってます。

成功したら以下のメッセージが出るので言うとおりにしましょう

	Creating virtual host
	* Successfully created PHP-FPM virtual host
	Creating databases
	* Successfully created main database
	* Successfully created test database
	Configuring permissions
	Updating configuration files
	Application created using:
  	database => mycake3_app
  	framework => cakephp
  	framework_human => CakePHP 3.x
  	framework_short => cakephp3
  	installation_method => composer
  	majorversion => 3
  	path => /home/vagrant/Apps/mycake3.app
  	source => cakephp/app
  	url => mycake3.app
  	webroot => /home/vagrant/Apps/mycake3.app/webroot

	Remember to update your hosts file with: 10.33.10.10 mycake3.app

(vimが入ってないのはマジ失点)
	
	sudo apt-get install vim

	sudo vim /etc/hosts　して

	 10.33.10.10 mycake3.app

 
 これを書き込んであげましょう
 (docには mycake3.appにアクセスしたら動くようになってたけど僕のは調子が悪く)
 
  bin/cake server -H 0.0.0.0　を　cakeのあるディレクトリで叩いてあげて
  
  http://10.33.10.10:8765

からアクセスしました。

僕はこの時sessionのパーミッションエラーが出ていたので、cakeboxにある
/var/lib/php5/sessionsのpermissionを書き換えておきました。

そしてリロードしたらなんとまあdashbordから見れるではありませんかあああ
test用アプリ用、両方のdbが用意されているという

![スクリーンショット 2015-08-31 13.42.08.png](https://qiita-image-store.s3.amazonaws.com/0/31272/619e0414-6e49-b059-a4ea-15da26c22c99.png "スクリーンショット 2015-08-31 13.42.08.png")

有能だ

そしてcake3の構成確認

![スクリーンショット 2015-08-31 13.12.49.png](https://qiita-image-store.s3.amazonaws.com/0/31272/0cbbd8ba-56af-cd43-503d-85aa9f7815c9.png "スクリーンショット 2015-08-31 13.12.49.png")



cakephp2のようにapp dirの中に全部あるのではなく結構バラけてる感じですね

そして、srcの中によく使うMVCが入ってます。

controllerは今まで通りっぽい

viewはtemplateってとこに入ってます

Modelは、、、、

**増えてる!!**

![スクリーンショット 2015-08-31 13.22.39.png](https://qiita-image-store.s3.amazonaws.com/0/31272/80872bcf-ea1d-e346-36a8-6d5b8b8afb54.png "スクリーンショット 2015-08-31 13.22.39.png")



fatcontroolerになって 次に fatmodelになっていたcake2のつらみがようやく、、、、



その2  チュートリアルをする  に続く!!