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

今こそCakePHP3に乗り換えよう!/php_conference_fukuoka_2016

 今こそCakePHP3に乗り換えよう!/php_conference_fukuoka_2016

今こそCakePHP3に乗り換えよう!

sakuragawa

May 24, 2016
Tweet

More Decks by sakuragawa

Other Decks in Programming

Transcript

  1. 今こそCakePHP3に乗り換えよう!
    2016/5/21

    View full-size slide

  2. 自己紹介
    株式会社Fusic 技術開発部 マネージャー
    櫻川 幸三
    https://github.com/kozo
    https://github.com/fusic
    http://qiita.com/kozo
    http://qiita.com/organizations/fusic
    CakePHP利用歴:8年程度(CakePHP1.1から)
    2

    View full-size slide

  3. 3
    使ってますか?

    View full-size slide

  4. 4
    CakePHP3に
    移行するメリットあるの?

    View full-size slide

  5. 6
    5つのおすすめポイント!

    View full-size slide

  6. 1. QueryBuilder
    CakePHP2
    7
    $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
    配列地獄からは解消される!

    View full-size slide

  7. 2. QueryBuilder
    8
    複雑なSQLもかけるようになった
    例) hasMany先のテーブルに条件をかける
    matching

    View full-size slide

  8. 2. QueryBuilder
    9
    複雑なSQLもかけるようになった
    例) hasMany先のテーブルに条件をかける

    View full-size slide

  9. 3. Table、Entity
    Table
    DBのテーブルへアクセスする処理を主に書く
    CakePHP2のModelクラスに近い動きをする
    10
    • Entity
    • DBのテーブル1レコードを表す
    • カラムのデータ自体の加工等を担当する
    • CakePHP2までのModelクラスが、
    TableとEntityの2つに分離された
    Tableクラス
    Entityクラス

    View full-size slide

  10. 4. HTMLの修正が非常に楽!
    11

    View full-size slide

  11. 5. namespace
    やっとnamespaceに対応した!
    12

    View full-size slide

  12. 28
    プラグイン

    View full-size slide

  13. fusic/Apollon
    29
    Installation
    composer require fusic/Apollon
    ひらがな、カタカナ、電話番号といったような基本的なバリデー
    ションルールをまとめているValidationクラス

    View full-size slide

  14. fusic/encount
    30
    本番環境等でwarningやnotice、faital等のエラーが出た場合
    にメール等で通知してくれるプラグイン
    Senderクラスを自作することで通知方法をSlack等、メール以
    外に変更することが可能
    Installation
    composer require fusic/encount

    View full-size slide

  15. kozo/Partial
    31
    同一コントローラー内で使える小さいスコープのテンプレート
    Installation
    composer require kozo/Partial
    新規登録画面
    編集画面
    add.ctp
    edit.ctp
    _form.ctp
    共通する部分を
    別ファイルにしておき
    Partialで読み込む

    View full-size slide

  16. まとめ
    CakePHP3は
    非常にパワフルで拡張性の高い
    フレームワークになりました。
    他にも色々便利な機能があります。
    興味ある人は是非、使っていきましょう!
    36

    View full-size slide

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

    View full-size slide

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

    View full-size slide