Your SlideShare is downloading. ×
0
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
CakePHP3ウォークスルー
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

CakePHP3ウォークスルー

354

Published on

PHPカンファレンス福岡2015の発表資料です。

PHPカンファレンス福岡2015の発表資料です。

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
354
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. CakePHP3 ウォークスルー デジタルサーカス(株)長谷川智希
  • 2. 長谷川智希 とも き @tomzoh
 とむぞう 開発系趣味 その他趣味 Webサイト開発, iOSアプリ開発 レンタルカートレース, 電子工作(mbed), … TOMZOH お仕事 スマホアプリ受託開発 Mgr デジタルサーカス(株) 副団長CTO 東京都港区南青山(表参道) Facebook CakePHP iOS
  • 3. 長谷川智希 とも き @tomzoh
 とむぞう 開発系趣味 その他趣味 Webサイト開発, iOSアプリ開発 TOMZOH お仕事 スマホアプリ受託開発 Mgr デジタルサーカス(株) 副団長CTO レンタルカートレース 東京都港区南青山(表参道) Facebook CakePHP iOS
  • 4. http://www.amazon.co.jp/dp/4798039519 Webアプリ開発を加速する CakePHP2定番レシピ119
  • 5. デジタルサーカス(株) ・ Webサイト受託開発 ・ スマホアプリ受託開発
 
 ・ 自社サービス (PHP, Drupal, CakePHP) (iOS, Android)
 
 (http://appbuilder.jp) Twitter: @tomzoh 東京都港区南青山(表参道)
  • 6. デジタルサーカス(株) ・ Webサイト受託開発 ・ スマホアプリ受託開発
 
 ・ 自社サービス (PHP, Drupal, CakePHP) (iOS, Android)
 
 (http://appbuilder.jp) Twitter: @tomzoh 東京都港区南青山(表参道)
  • 7. Twitter: @tomzoh
  • 8. Twitter: @tomzoh
  • 9. 今日のテーマ: CakePHP3ウォークスルー
  • 10. の前に…
  • 11. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 10⽉月 CakePHP 2.0 3⽉月 CakePHP 3.0 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 3⽉月 Cake
  • 12. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 10⽉月 CakePHP 2.0 3⽉月 CakePHP 3.0 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 3⽉月 Cake
  • 13. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 3⽉月 Cake
  • 14. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 7⽉月 Ruby on Rails 1st 12⽉月 Ruby on Rails 1.0 3⽉月 Cake
  • 15. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 7⽉月 Ruby on Rails 1st 12⽉月 Ruby on Rails 1.0 3⽉月 Cake
  • 16. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 7⽉月 Ruby on Rails 1st 12⽉月 Ruby on Rails 1.0 3⽉月 Cake
  • 17. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 7⽉月 Ruby on Rails 1st 12⽉月 Ruby on Rails 1.0 3⽉月 Cake
  • 18. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 7⽉月 Ruby on Rails 1st 12⽉月 Ruby on Rails 1.0 3⽉月 Cake
  • 19. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 3⽉月 Cake
  • 20. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 3⽉月 Cake
  • 21. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 4⽉月 CakePHP 1.3 3⽉月 Cake
  • 22. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ 4⽉月 CakePHP 1.3 3⽉月 Cake
  • 23. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ 4⽉月 CakePHP 1.3 1⽉月 Symfony 1.0 3⽉月 Cake
  • 24. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 2012 12⽉月 CakePHP 1.2 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ 4⽉月 CakePHP 1.3 1⽉月 Symfony 1.0 PHP 5.0+ 3⽉月 Cake
  • 25. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表
  • 26. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 10⽉月 CakePHP 2.0
  • 27. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 10⽉月 CakePHP 2.0
  • 28. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0
  • 29. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0
  • 30. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 2012 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 Composer 1.0.0-alpha1 PSR-2 PSR−4 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0 PHP Standard Recommendation
  • 31. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉月 PHP 5.3.0 3⽉月 PHP 5.4.0 2012 6⽉月 PHP 5.5.0 8⽉月 PHP 5.6.0 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 Composer 1.0.0-alpha1 PSR-2 PSR−4 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0 PHP Standard Recommendation
  • 32. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉月 PHP 5.3.0 3⽉月 PHP 5.4.0 2012 6⽉月 PHP 5.5.0 8⽉月 PHP 5.6.0 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 名前空間クロージャ トレイトarray() → [] 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 Composer 1.0.0-alpha1 PSR-2 PSR−4 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0 PHP Standard Recommendation
  • 33. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉月 PHP 5.3.0 3⽉月 PHP 5.4.0 2012 6⽉月 PHP 5.5.0 8⽉月 PHP 5.6.0 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 名前空間クロージャ トレイトarray() → [] 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 Composer 1.0.0-alpha1 PSR-2 PSR−4 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0 イケてない感(個⼈人の感想です) PHP Standard Recommendation
  • 34. CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉月 PHP 5.3.0 3⽉月 PHP 5.4.0 2012 6⽉月 PHP 5.5.0 8⽉月 PHP 5.6.0 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 名前空間クロージャ トレイトarray() → [] 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 Composer 1.0.0-alpha1 PSR-2 PSR−4 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0 PHP Standard Recommendation
  • 35. Composer 1.0.0-alpha1 PSR-2 PSR−4 CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉月 PHP 5.3.0 3⽉月 PHP 5.4.0 2012 6⽉月 PHP 5.5.0 8⽉月 PHP 5.6.0 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 名前空間クロージャ トレイトarray() → [] 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0
  • 36. Composer 1.0.0-alpha1 PSR-2 PSR−4 CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉月 PHP 5.3.0 3⽉月 PHP 5.4.0 2012 6⽉月 PHP 5.5.0 8⽉月 PHP 5.6.0 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 名前空間クロージャ トレイトarray() → [] 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0 3⽉月 CakePHP 3.0
  • 37. Composer 1.0.0-alpha1 PSR-2 PSR−4 CakePHPの歴史 2005 2007 2009 2010 2011 2015 2014 2006 2013 2008 2004 6⽉月 PHP 5.3.0 3⽉月 PHP 5.4.0 2012 6⽉月 PHP 5.5.0 8⽉月 PHP 5.6.0 12⽉月 CakePHP 1.2 4⽉月 CakePHP 1.3 5⽉月 CakePHP 1.1 3⽉月 CakePHP 1.0 PHP4.3.2+ PHP5.2.6+ 名前空間クロージャ トレイトarray() → [] 3⽉月 Cake 7⽉月 PHP 4.4.0 7⽉月 PHP 5.0.0 11⽉月 PHP 5.1.0 12⽉月 PHP 5.2.0 7⽉月 12⽉月でPHP4サポート終了了発表 12⽉月 CakePHP 2.6 3⽉月 CakePHP 2.5 1⽉月 CakePHP 2.3 7⽉月 CakePHP 2.2 3⽉月 CakePHP 2.1 4⽉月 CakePHP 2.4 10⽉月 CakePHP 2.0 3⽉月 CakePHP 3.0 PHP5.4+
  • 38. CakePHP3 • PHP5.4+ • トレイト, 配列短縮構文 • Composer必須 • zipファイルをダウンロードしないでOK • PSR-2, PSR-4 • オブジェクト化。特にORマッパ。 • 「配列地獄」からの脱出
  • 39. CakePHP3 • PHP5.4+ • トレイト, 配列短縮構文 • Composer必須 • zipファイルをダウンロードしないでOK • PSR-2, PSR-4 • オブジェクト化。特にORマッパ。 • 「配列地獄」からの脱出 イケてる感(個⼈人の感想です)
  • 40. CakePHP3ウォークスルー
  • 41. CakePHPセットアップ
  • 42. CakePHP2 - セットアップ { "name": "app", "repositories": [ { "type": "pear", "url": "http://pear.cakephp.org" } ], "require": { "cakephp/cakephp": "~2.6", "cakephp/debug_kit": ">=2.2", "cakedc/migrations": "~2.3", "fabpot/goutte": "~2.0", "phpunit/phpunit": "3.7.*" }, "config": { "vendor-dir": "Vendor/" } } composer.json
  • 43. CakePHP2 - セットアップ # vi composer.json # composer install (略略) # ./Vendor/bin/cake bake (略略) # ls -alF total 24 drwxrwxr-x 1 nobody nogroup 204 6⽉月 25 18:14 ./ drwxrwxr-x 1 nobody nogroup 578 6⽉月 25 18:06 ../ drwxrwxr-x 1 nobody nogroup 102 6⽉月 25 18:14 Plugin/ drwxrwxr-x 1 nobody nogroup 306 6⽉月 25 18:14 Vendor/ drwxrwxr-x 1 nobody nogroup 544 6⽉月 25 23:37 app/ -rwxrwxr-x 1 nobody nogroup 283 6⽉月 25 18:06 composer.json* -rwxrwxr-x 1 nobody nogroup 18465 6⽉月 25 18:14 composer.lock* # vi app/webroot/index.php # vi app/webroot/test.php # vi app/Console/cake.php appを作る
  • 44. CakePHP2 - セットアップ # vi composer.json # composer install (略略) # ./Vendor/bin/cake bake (略略) # ls -alF total 24 drwxrwxr-x 1 nobody nogroup 204 6⽉月 25 18:14 ./ drwxrwxr-x 1 nobody nogroup 578 6⽉月 25 18:06 ../ drwxrwxr-x 1 nobody nogroup 102 6⽉月 25 18:14 Plugin/ drwxrwxr-x 1 nobody nogroup 306 6⽉月 25 18:14 Vendor/ drwxrwxr-x 1 nobody nogroup 544 6⽉月 25 23:37 app/ -rwxrwxr-x 1 nobody nogroup 283 6⽉月 25 18:06 composer.json* -rwxrwxr-x 1 nobody nogroup 18465 6⽉月 25 18:14 composer.lock* # vi app/webroot/index.php # vi app/webroot/test.php # vi app/Console/cake.php appを作る Composer前提じゃない箇所の修正 (‘;ω;)ウッ
  • 45. CakePHP3 - セットアップ # composer create-project --prefer-dist cakephp/app cake3 Installing cakephp/app (3.0.3) - Installing cakephp/app (3.0.3) Loading from cache Created project in cake3 Loading composer repositories with package information Installing dependencies (including require-dev) - Installing aura/installer-default (1.0.0) Loading from cache - Installing cakephp/plugin-installer (0.0.12) Loading from cache Writing lock file Generating autoload files Created `config/app.php` file Set Folder Permissions ? (Default to Y) [Y,n]? Permissions set on /var/www/cake3/tmp/cache Permissions set on /var/www/cake3/tmp Permissions set on /var/www/cake3/logs Updated Security.salt value in config/app.php
  • 46. CakePHP3 - セットアップ # composer create-project --prefer-dist cakephp/app cake3 Installing cakephp/app (3.0.3) - Installing cakephp/app (3.0.3) Loading from cache Created project in cake3 Loading composer repositories with package information Installing dependencies (including require-dev) - Installing aura/installer-default (1.0.0) Loading from cache - Installing cakephp/plugin-installer (0.0.12) Loading from cache Writing lock file Generating autoload files Created `config/app.php` file Set Folder Permissions ? (Default to Y) [Y,n]? Permissions set on /var/www/cake3/tmp/cache Permissions set on /var/www/cake3/tmp Permissions set on /var/www/cake3/logs Updated Security.salt value in config/app.php CakePHP3のプロジェクトテンプレートを ダウンロードしてcomposer installする。
  • 47. CakePHP3 - プロジェクト # ls -alF cake3 total 76 drwxrwxr-x 1 nobody nogroup 714 6⽉月 26 00:10 ./ drwxrwxr-x 1 nobody nogroup 646 6⽉月 26 00:09 ../ -rwxrwxr-x 1 nobody nogroup 329 5⽉月 2 01:04 .editorconfig* -rwxrwxr-x 1 nobody nogroup 772 5⽉月 2 01:04 .gitattributes* -rwxrwxr-x 1 nobody nogroup 41 5⽉月 2 01:04 .gitignore* -rwxrwxr-x 1 nobody nogroup 140 5⽉月 2 01:04 .htaccess* -rwxrwxr-x 1 nobody nogroup 337 5⽉月 2 01:04 .travis.yml* -rwxrwxr-x 1 nobody nogroup 863 5⽉月 2 01:04 README.md* drwxrwxr-x 1 nobody nogroup 170 5⽉月 2 01:04 bin/ -rwxrwxr-x 1 nobody nogroup 1203 5⽉月 2 01:04 composer.json* -rwxrwxr-x 1 nobody nogroup 38855 6⽉月 26 00:10 composer.lock* drwxrwxr-x 1 nobody nogroup 306 6⽉月 26 00:10 config/ -rwxrwxr-x 1 nobody nogroup 648 5⽉月 2 01:04 index.php* drwxrwxr-x 1 nobody nogroup 102 5⽉月 2 01:04 logs/ -rwxrwxr-x 1 nobody nogroup 819 5⽉月 2 01:04 phpunit.xml.dist* drwxrwxr-x 1 nobody nogroup 102 5⽉月 2 01:04 plugins/ drwxrwxr-x 1 nobody nogroup 272 5⽉月 2 01:04 src/ drwxrwxr-x 1 nobody nogroup 170 5⽉月 2 01:04 tests/ drwxrwxr-x 1 nobody nogroup 170 5⽉月 2 01:04 tmp/ drwxrwxr-x 1 nobody nogroup 646 6⽉月 26 00:11 vendor/ drwxrwxr-x 1 nobody nogroup 272 5⽉月 2 01:04 webroot/ composer.jsonが生成されてる .gitignore標準装備 PSR-2定義
  • 48. CakePHP3 - bake # bin/cake bake Welcome to CakePHP v3.0.7 Console --------------------------------------------------------------- App : src Path: /var/www/cake3/src/ --------------------------------------------------------------- The following commands can be used to generate skeleton code for your application. Available bake commands: - all - behavior - cell - component - controller - fixture - form - helper - migration - migration_snapshot - model - plugin - shell - template - test By using `cake bake [name]` you can invoke a specific bake task. いろいろ作れる。 うまく使うと便利。
  • 49. ディレクトリ構成 / コーディング標準
  • 50. プログラムのルート CakePHP2 CakePHP3 • ./app  から  ./src  に変更
  • 51. ビューテンプレート(ctp) CakePHP2 CakePHP3 • ./app/View  から  ./src/Template  に変更
  • 52. 設定ファイル CakePHP2 CakePHP3 • ./app/Config/core.php  から  ./config/app.php  に変更   • composer  install  で  app.default.php  から生成される   • SCMにはコミットせずに管理   • database.phpは廃止
  • 53. PSR-4 composer.json • 生成される  composer.json  にPSR-4関連の設定あり。   • This  PSR  describes  a  specification  for  autoloading  classes  from   file  paths.
  • 54. PSR-2 • CakePHP3はPSR-2準拠。   • This  guide  extends  and  expands  on  PSR-1,  the  basic  coding   standard. http://www.slideshare.net/yandod/psrphp新標準PSRに学ぶきれいなPHP
  • 55. PSR-2 • CakePHP3はPSR-2準拠。   • This  guide  extends  and  expands  on  PSR-1,  the  basic  coding   standard. http://www.slideshare.net/yandod/psrphp新標準PSRに学ぶきれいなPHP
  • 56. PSR-2 個人的にちょっとキモい… • CakePHP3はPSR-2準拠。   • This  guide  extends  and  expands  on  PSR-1,  the  basic  coding   standard. http://www.slideshare.net/yandod/psrphp新標準PSRに学ぶきれいなPHP
  • 57. PSR-2 すぐ慣れた • CakePHP3はPSR-2準拠。   • This  guide  extends  and  expands  on  PSR-1,  the  basic  coding   standard. http://www.slideshare.net/yandod/psrphp新標準PSRに学ぶきれいなPHP
  • 58. モデル
  • 59. モデルの構成 がっつり変わってる。 • CakePHP2 • クエリ実行: Modelクラス • クエリ実行結果: 配列 • CakePHP3 • クエリ実行: Tableクラス • クエリ実行結果: Entityオブジェクト
  • 60. モデルの動作 CakePHP2 CakePHP3 ControllerModelView クエリ 配列 クエリ 配列 クエリ 配列 配列 配列 配列 配列 配列 配列 find() find() オブジェクト オブジェクト クエリ クエリ オブジェクト オブジェクト
  • 61. モデルの動作 CakePHP2 CakePHP3 ControllerModelView クエリ 配列 クエリ 配列 クエリ 配列 配列 配列 配列 配列 配列 配列 find() find() オブジェクト オブジェクト クエリ クエリ オブジェクト 全てのクエリが実行されて… オブジェクト
  • 62. モデルの動作 CakePHP2 CakePHP3 ControllerModelView クエリ 配列 クエリ 配列 クエリ 配列 配列 配列 配列 配列 配列 配列 find() find() オブジェクト オブジェクト クエリ クエリ オブジェクト 全てのクエリが実行されて… 配列を持ち回る オブジェクト
  • 63. モデルの動作 CakePHP2 CakePHP3 ControllerModelView クエリ 配列 クエリ 配列 クエリ 配列 配列 配列 配列 配列 配列 配列 find() find() オブジェクト オブジェクト クエリ クエリ オブジェクト 全てのクエリが実行されて… 配列を持ち回る この段階ではクエリは実行されない オブジェクト
  • 64. モデルの動作 CakePHP2 CakePHP3 ControllerModelView クエリ 配列 クエリ 配列 クエリ 配列 配列 配列 配列 配列 配列 配列 find() find() オブジェクト オブジェクト クエリ クエリ オブジェクト 全てのクエリが実行されて… 配列を持ち回る この段階ではクエリは実行されない 参照される時にクエリ実行 オブジェクト
  • 65. モデルの動作 CakePHP2 CakePHP3 ControllerModelView クエリ 配列 クエリ 配列 クエリ 配列 配列 配列 配列 配列 配列 配列 find() find() オブジェクト オブジェクト クエリ クエリ オブジェクト 全てのクエリが実行されて… 配列を持ち回る この段階ではクエリは実行されない 参照される時にクエリ実行 オブジェクト 出てくるのもオブジェクト
  • 66. Table / Entity Object
  • 67. Table / Entity Object オブジェクト
  • 68. Table / Entity Object オブジェクト オブジェクト
  • 69. Table / Entity Object オブジェクト オブジェクト オブジェクト
  • 70. オブジェクト化の恩恵 • PhpStormとか使うとプロパティやメソッドがサジェスト される。
  • 71. オブジェクト化の恩恵 • 若干のアノテーションは覚悟。 • PhpStormとか使うとプロパティやメソッドがサジェスト される。
  • 72. バリデータ
  • 73. もちろんオブジェクト • 今風メソッドチェイン。
  • 74. もちろんオブジェクト • 今風メソッドチェイン。 • もちろんサジェスト可能。
  • 75. もちろんオブジェクト • 今風メソッドチェイン。 ステキ!! • もちろんサジェスト可能。
  • 76. CakePHP3 ステキ!
  • 77. コントローラ & ビュー (含ヘルパ)
  • 78. 興奮するような変化は ありませんでした…
  • 79. まとめ
  • 80. CakePHP3 まとめ • セットアップの方法が変わった。 • Composer前提。 • モデル周りがオブジェクト化された。 • クエリは必要になってから実行されるのでパフォーマンス的に 有利。 • IDEのサジェスト機能を活用しよう。 • コントローラ、ビューまわりに大きな変化は無し。 • キレイに今風になって、イケてる感が高くなった。 • CakePHP史上、一番の改善アップデート。
  • 81. 使ってみよう!CakePHP3!
  • 82. ありがとうございました @tomzoh デジタルサーカス(株) 懇親会も行きます。 声かけてください

×