Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CakePHP2と3の違い

 CakePHP2と3の違い

CakePHP2と3の違い

6ac3d104c1f959827ec9a12099b05e85?s=128

sakuragawa

April 20, 2016
Tweet

Transcript

  1. CakePHP2と3の違い 2016/4/13

  2. 自己紹介 株式会社Fusic 技術開発部 マネージャー 櫻川 幸三 https://github.com/kozo https://github.com/fusic http://qiita.com/kozo http://qiita.com/organizations/fusic

    CakePHP利用歴:8年程度(CakePHP1.1から) Cake3用のプラグイン初リリース 2014/11/13(Cake3のリリースは2015/3) 2
  3. 3 使ってますか?

  4. CakePHP3メリット PHP自体のバージョン 速度、使える機能が多い。 composer Cake自体、ライブラリのバージョン管理が容易 autoload namespace PSR-2 trait Cake自体を含めた可読性が上がった

    デザインが少しかっこよくなった CakePHP2よりはましになった モデル周りが一新 出来ることが増えた!拡張性が大幅に向上! 4
  5. 5 新しい方が楽しい! モダンな書き方をしたい!

  6. PHP等のバージョン変更 CakePHP2 CakePHP3 PHP 5.3以上 5.5.9以上 Extension mcrypt intl mbstring

    openssl(オプション) PostgreSQL 7以上 ??? MySQL 4 & 5 5.1.10以上 SQL Server 2005以上 2008以上 SQLite ??? 3 6 • PHP5.4 • trait • short array syntax([]) • short open tag(<?=) • PHP5.5 • yield • password_hash • finally
  7. composer経由でインストールが楽 composerが標準で対応 CakePHP自体 様々なライブラリ autoload(PSR-4)に対応 ファイル名 ディレクトリ構造 namespace PSR-2準拠 7

    composer create-project --prefer-dist cakephp/app [アプリ名]
  8. デザインがおしゃれに 8

  9. モデル周りが大幅リニューアル! QueryBuilder Table Entity 9

  10. QueryBuilder CakePHP2 10 $query = [ ‘conditions’ => [ ‘条件A’,

    ‘条件B’ ], ‘order’ => [ ‘ソート条件A’, ‘ソート条件B’ ], ‘fields’ => [‘取得フィールド’] ] $this->User->find(‘all’, $query); $this->Users->find() ->where(条件A) ->where(条件B) ->order(ソート条件A) ->order(ソート条件B) ->select(取得フィールド) ->all() • CakePHP3 配列地獄からは解消される!
  11. Table、Entity Table DBのテーブルへアクセスする CakePHP2のModelクラスに近い動きをする 11 • Entity • DBのテーブル1レコードを表す •

    カラムのデータ自体の加工等を担当する • CakePHP2までのModelクラスが、 TableとEntityの2つに分離された Tableクラス Entityクラス
  12. デメリット 学習コスト namespace QueryBuilder プラグイン周り プラグイン周りは全滅 Controller、View周りは大きくは変更されてない Model関係は0から作りなおす必要がある PHP自体のバージョンが高い 5.5.9以上

    12
  13. まとめ 学習コストはあるが、 覚えてしまえば拡張性が非常に高く使いやすい! やっとモダンなフレームワークの仲間入り! 新しいものは楽しい! 13

  14. ご清聴ありがとうございました Fusicはテクノロジーが 好きなエンジニアを募集しています https://fusic.github.io 14