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

PHP 5.3 + CakePHP1.3 バージョンアップ報告

PHP 5.3 + CakePHP1.3 バージョンアップ報告

昨年お話ししました、ランサーズのPHP、CakePHPバージョンアップ宣言後の報告です。60万超ステップのサービスを、新規開発を止めずにリアルタイムにバージョンアップするノウハウや、PHP5.3 + CakePHP1.3 → PHP7、CakePHP3への適切なバージョンアップ順序、Dockerを利用したテスト工数の短縮についてお話しいたします。
PHP全般に関してはSREの金澤が、CakePHPのバージョンアップについてはアプリエンジニアの小林が発表しました。

Kanazawa Yuki

June 18, 2018
Tweet

More Decks by Kanazawa Yuki

Other Decks in Technology

Transcript

  1. 2018/6/16 PHPカンファレンス福岡
    PHP 5.3 + CakePHP1.3
    バージョンアップ報告
    https://www.lancers.jp/
    「テクノロジーで、個をエンパワーメントする」

    View full-size slide

  2. 2018/6/16 PHPカンファレンス福岡
    はじめに

    View full-size slide

  3. 2018/6/16 PHPカンファレンス福岡
    自己紹介 3
    氏名:金澤 裕毅
    出身:宮城県仙台市
    ランサーズ入社:2013年11月
    略歴:
    大学時代はネットワークを専攻
    Windowsパッケージ開発(C++)
    ASP開発(Java)&インフラ(オンプレ)
    SNS開発(PHP)&インフラ(オンプレ)
    現在はランサーズのSRE
    インフラチームから
    SREチームに

    View full-size slide

  4. 2018/6/16 PHPカンファレンス福岡
    会社概要
    会社名:ランサーズ株式会社
    設立:2008年4月
    従業員:約170名
    事業:クラウドソーシング事業
    https://www.lancers.jp/
    所在地:
    〒150-0002
    東京都渋谷区渋谷 3-10-13
    TOKYU REIT 渋谷Rビル 9F
    10年目!

    View full-size slide

  5. 2018/6/16 PHPカンファレンス福岡
    ランサーズを支える技術

    View full-size slide

  6. 2018/6/16 PHPカンファレンス福岡
    ランサーズのサーバー構成
    App
    S3
    ELB App
    CloudFront Cloud Search
    Route53
    EC2
    instance
    WebSocket
    ErastiCache
    Memcached
    ErastiCache
    Redis
    Aurora
    Reader
    Aurora
    Writer
    Api
    ELB Api
    EC2
    EC2
    instance
    ErastiCache
    Redis
    EC2
    EC2
    ●Amazon Linux 2017.03
    ○PHP 5.3提供の最終バージョン
    ●PHP 5.3.29
    ○CakePHP 1.3.6
    ○PECL
    ○PEAR
    ○Composer
    ●Webサーバー
    ○Nginx
    ●Appサーバー
    ○PHP-FPM こっちは
    Python
    ELB WebSocket

    View full-size slide

  7. 2018/6/16 PHPカンファレンス福岡
    ランサーズの開発環境
    Docker for Mac(Windows)
    docker
    exec
    3306 9000
    Docker
    マウント
    SQLクライアント 開発環境(エディタ)
    ターミナル
    ●Docker for Mac(Windows)で構築
    ○本番環境とほぼ同じ構成をDockerコンテナで再現
    ○DockerマウントでPCとソースを共有
    ■開発はPC上のエディタで行う
    Amazon ECR
    10.10.6.11
    App
    ランサーズ本体
    10.100.106.5
    WordPress
    コーポレート、ブログ
    10.100.51.11
    MySQL
    10.100.6.131
    WebSocket
    メッセージサービス
    データ入り

    View full-size slide

  8. 2018/6/16 PHPカンファレンス福岡
    バージョンアップ決定の経緯

    View full-size slide

  9. 2018/6/16 PHPカンファレンス福岡
    なぜ、バージョンアップするのか?
    ●サポート終了
    ○PHP 5.3
    ■2015/11/01 1.3.21でサポート終了
    ○CakePHP1.3
    ■2014/08/14 5.3.29でサポート終了
    ●バグ修正やカスタマイズを独自に行っている状態
    ○最新バージョンであれば貢献できる内容もc
    昨年発表時 あれから1年経過

    View full-size slide

  10. 2018/6/16 PHPカンファレンス福岡
    ●サポート終了
    ○AWS SDK PHP
    ■最新バージョンはPHP5.5以上
    ○Facebook SDK
    ■最新バージョンはPHP5.4以上
    ●旧バージョンのサポート終了が早い
    ■PHP5.3サポートのfork版で対応中
    ●が、これもサポート終了
    ○手動で修正してしがみついている状態
    ○FireBase Admin SDK for PHP
    ■PHP7.0以上
    なぜ、バージョンアップするのか?

    View full-size slide

  11. 2018/6/16 PHPカンファレンス福岡
    ●会社の成長フェーズの変化
    ○技術を重視した方針が採用されやすくなった
    ■2017年にバージョンアップを社外に宣言
    ○PHPコミュニティにも積極参加するようになった
    ●エンジニアに魅力のある開発環境を提供したい
    ○生産性を上げたい
    ■新しいPHPの関数が使えるようにしたい
    ■新しいPHPの仕様でコーディングしたい
    ○フリーランスが外部パートナーの開発者には死活問題
    ●常に最新の技術やバージョンに追従したい
    ○旧バージョンをカスタマイズしない
    ○最新バージョンでOSSに貢献する
    なぜ、バージョンアップするのか?

    View full-size slide

  12. 2018/6/16 PHPカンファレンス福岡
    昨年のおさらい

    View full-size slide

  13. 2018/6/16 PHPカンファレンス福岡
    ソースコード量の調査
    ● ソースコード量
    ファイル数 行数
    コントローラー 174 約6万
    バッチファイル 127 約5万
    UT 505 約20万
    UT抜き 1,386 約40万
    全体 1,891 約60万

    View full-size slide

  14. 2018/6/16 PHPカンファレンス福岡
    バージョンアップ条件の整理
    PHP
    バージョン
    PHP
    キャッシュ
    CakePHP
    対応バージョン
    Apache
    バージョン
    PHP5.3 APC CakePHP1.3
    CakePHP2
    Apache 2.2
    PHP5.4 CakePHP1.3
    CakePHP2
    Apache 2.4
    PHP5.5 OPCache
    APCu
    CakePHP1.3
    CakePHP2
    Apache 2.4
    PHP5.6 OPCache
    APCu
    CakePHP1.3
    CakePHP2
    CakePHP3
    Apache 2.4
    PHP7.0 OPCache
    APCu
    CakePHP2
    CakePHP3
    Apache 2.4
    Apacheも
    バージョン
    アップが必要
    CakePHP 1.3は
    まともに動かない
    CakePHP 3
    未サポート
    バージョンアップ
    前の構成
    json.soの
    インストールに問題
    最も対応している
    PHPバージョン
    PHPとセットで
    インストールされる
    ●Amazon Linux 2017.03で調査

    View full-size slide

  15. 2018/6/16 PHPカンファレンス福岡
    Apache + mod_php → Nginx + PHP-FPMに
    ●PHPをバージョンアップすると、Apacheも2.2→2.4になる
    ○Apacheの設定も作り直しが必要
    ■それなら別の構成も検討したい
    ●Nginx + PHP-FPMを採用
    ○※Nginxはソースでインストール
    ○パフォーマンスの向上に期待していた
    ■結果はレスポンス、サーバーリソース消費量もほぼ変わらず

    View full-size slide

  16. 2018/6/16 PHPカンファレンス福岡
    開発用DockerコンテナをPHP 5.6に置き換えてみた
    2017/06/08 01:38:06 [error] 12029#0: *87 FastCGI sent in stderr: "PHP message: PHP Strict Standards: Non-static method Configure::getInstance() should not be called
    statically in /var/www/lancers/cake/bootstrap.php on line 38
    PHP message: PHP Strict Standards: Non-static method CakeLog::handleError() should not be called statically in /var/www/lancers/cake/libs/cake_log.php on line 290
    PHP message: PHP Strict Standards: Non-static method CakeLog::handleError() should not be called statically in /var/www/lancers/cake/libs/debugger.php on line 707" while
    reading response header from upstream, client: 172.17.0.5, server: dev.lancers.jp, request: "GET /user/login?1496853486&ref=header_menu HTTP/1.1", upstream:
    "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "dev.lancers.jp", referrer: http://dev.lancers.jp/
    PHP message: PHP Warning: curl_setopt() expects parameter 2 to be long, string given in /var/www/lancers/app/vendors/AmazonSDK/lib/requestcore/requestcore.class.php on
    line 610
    [08-Jun-2017 01:44:52] WARNING: [pool www] child 13007 said into stderr: "NOTICE: PHP message: PHP Strict Standards: Non-static method CakeLog::handleError() should not be
    called statically in /var/www/lancers/cake/libs/cake_log.php on line 290"
    [08-Jun-2017 01:44:52] WARNING: [pool www] child 13007 said into stderr: "NOTICE: PHP message: PHP Strict Standards: Non-static method CakeLog::handleError() should not be
    called statically in /var/www/lancers/cake/libs/debugger.php on line 707"
    [08-Jun-2017 01:44:52] WARNING: [pool www] child 13006 said into stderr: "NOTICE: PHP message: PHP Strict Standards: Non-static method Configure::getInstance() should not
    be called statically in /var/www/lancers/cake/bootstrap.php on line 38"
    動いた!
    トップページは問題なし
    エラーログにWarningが多発
    CakePHP1.3関連

    View full-size slide

  17. 2018/6/16 PHPカンファレンス福岡
    SREチームで提案したバージョンアップ手順
    PHP
    バージョン
    PHP
    キャッシュ
    CakePHP
    バージョン
    Webパッケージ
    バージョン(yum)
    PHP5.3 APC CakePHP1.3 Apache 2.2 + mod_php
    PHP5.3 APC CakePHP1.3 Nginx + PHP-FPM 5.3
    PHP5.6 OPCache
    APCu
    CakePHP1.3 Nginx + PHP-FPM 5.6
    PHP5.6 OPCache
    APCu
    CakePHP2 Nginx + PHP-FPM 5.6
    PHP5.6 OPCache
    APCu
    CakePHP3 Nginx + PHP-FPM 5.6
    PHP7.0 OPCache
    APCu
    CakePHP3 Nginx + PHP-FPM 7.0
    Nginx + PHP-FPM
    に置き換え
    PHP 5.6まで
    一気にバージョンアップ
    最大の難関
    カスタマイズ
    問題を解決

    View full-size slide

  18. 2018/6/16 PHPカンファレンス福岡
    アプリチームと相談して手順をさらに整理
    1.3 → 2.8
    2.8 → 2.9
    2.9 → 3.3 .. more
    5.3 → 5.6
    5.6 → 7.2
    SRE担当
    アプリ担当
    SRE担当
    アプリ担当

    View full-size slide

  19. 2018/6/16 PHPカンファレンス福岡
    How To CakePHP1.3→CakePHP2.8

    View full-size slide

  20. 2018/6/16 PHPカンファレンス福岡
    自己紹介 20
    氏名:小林 紗綾 (@sayanet)
    出身:鳥取県境港市
    ランサーズ入社:2014年4月
    サーバーサイドエンジニア
    - バージョンアッププロジェクト/PM
    - ランサーズ開発部のオカン(自称)

    View full-size slide

  21. 2018/6/16 PHPカンファレンス福岡
    お伝えしたいこと
    バージョンアップ現場の生の声をお届けします。
    ランサーズのバージョンアップチームが、どういう形で進
    めているのか、どんな壁にぶち当たってどんな解決策を
    とっているのか、事例を交えて紹介していきます。
    これからバージョンアップをするかた、いままさにバー
    ジョンアップを進めている方の参考になれば幸いです。

    View full-size slide

  22. 2018/6/16 PHPカンファレンス福岡
    前提
    ● 複数のチームで日々リリースしている施策をとめるのは
    難しい。プロダクト成長に極力影響を与えない方法をと

    View full-size slide

  23. 2018/6/16 PHPカンファレンス福岡
    前提
    ● 複数のチームで日々リリースしている施策をとめるのは
    難しい。プロダクト成長に極力影響を与えない方法をと

    ● ステークホルダーと調整し、納得してもらった上で推進

    View full-size slide

  24. 2018/6/16 PHPカンファレンス福岡
    CakePHP2.8にアップデートしたブランチを作成して、動
    作を確認しつつコントローラー単位で修正を実施
    最初にやったこと

    View full-size slide

  25. 2018/6/16 PHPカンファレンス福岡
    How To CakePHP1.3→CakePHP2.8
    ● Upgrade Shellの実行
    ● Upgrade Shellの実行だけでは動かない
    CakePHP2.0から2.8の差分を取り込んでいるわけでは
    なかった

    変更点のドキュメントを2.0から読み直して修正点を
    まとめる

    View full-size slide

  26. 2018/6/16 PHPカンファレンス福岡
    ● HtmlHelper::link, FormHelper::selectの
    仕様が変わっている
    ○ 仕様に合わせたラッパークラスを作成して、
    それを利用するようにテンプレートの修正
    ■ HtmlHelper::linkはjavascript::confirm()でアラート表示する方
    法が変わっていたり
    ■ FormHelper::selectはselectedの指定方法が変更になっていたり
    ○ その他にも修正点が多く時間がかかる
    How To CakePHP1.3→CakePHP2.8

    View full-size slide

  27. 2018/6/16 PHPカンファレンス福岡
    開始から2ヶ月ほどの間はCakePHP2.8にアップデートした
    ブランチで作業を続けていました
    が、
    - 毎週masterから最新を取り込む手間がかかる
    - 同じような修正点が多くて辛い、、、
    How To CakePHP1.3→CakePHP2.8

    View full-size slide

  28. 2018/6/16 PHPカンファレンス福岡
    どんな感じですすめているのか
    ↓ ↓ ↓
    本来の目的となるバージョンアップのための修正よりも、
    日々リリースされる差分吸収のコストが大きすぎて思うよ
    うに進められない、、、

    View full-size slide

  29. 2018/6/16 PHPカンファレンス福岡
    イノベーションが起きました!
    CakePHP1.3とCakePHP2.8を
    同居させれば徐々に移行できる
    んじゃない?

    View full-size slide

  30. 2018/6/16 PHPカンファレンス福岡
    CakePHP1.3のapp/webroot/index.phpに細工してスイッ
    チャーを導入。
    利用するCakePHPのバージョンを切り替えられるよう工夫
    イノベーションが起きました!

    View full-size slide

  31. 2018/6/16 PHPカンファレンス福岡
    ● Component, Helper, View
    等の共通ファイルを
    CakePHP2.8側にもコピー
    して配置
    ● 1コントローラーずつ移行
    イノベーションが起きました!

    View full-size slide

  32. 2018/6/16 PHPカンファレンス福岡
    更に、API(action)単位でも移行できるよう機能追加
    → URIパラメータ指定で切り替え可能
    イノベーションが起きました!

    View full-size slide

  33. 2018/6/16 PHPカンファレンス福岡
    イノベーションを起こした結果
    ● コントローラ単位、さらにはAPI単位でリリースできる
    ので他のエンジニアにも協力を求める形で進められる

    View full-size slide

  34. 2018/6/16 PHPカンファレンス福岡
    イノベーションを起こした結果
    ● コントローラ単位、さらにはAPI単位でリリースできる
    ので他のエンジニアにも協力を求める形で進められる
    ● 不具合発生の心配ごとを軽減&発生時のスコープ限定

    View full-size slide

  35. 2018/6/16 PHPカンファレンス福岡
    イノベーションを起こした結果
    ● コントローラ単位、さらにはAPI単位でリリースできる
    ので他のエンジニアにも協力を求める形で進められる
    ● 不具合発生の心配ごとを軽減&発生時のスコープ限定
    ● いつ変更するかの不安感を無くす事ができる

    View full-size slide

  36. 2018/6/16 PHPカンファレンス福岡
    イノベーションを起こした結果
    ● コントローラ単位、さらにはAPI単位でリリースできる
    ので他のエンジニアにも協力を求める形で進められる
    ● 不具合発生の心配ごとを軽減&発生時のスコープ限定
    ● いつ変更するかの不安感を無くす事ができる
    ● 絶対にやりきらなければいけない状況に追い込む

    View full-size slide

  37. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント

    View full-size slide

  38. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● 事前にCakePHP1.3で出来ることをすれば再対応不要
    ○ viewファイルで、Helperの参照方法
    ■ $lancers → $this->Lancers
    ○ $this->params, $this->dataの参照変更
    ■ $this->request->params, $this->request-
    >data

    View full-size slide

  39. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● App::import → App::uses
    ● new FooHelper() → new FooHelper(new View())
    ● new HogeComponent() →
    new HogeComponent(new ComponentCollection())
    ● new BarController() →
    new BarController(
    new CakeRequest(), new CakeResponse()
    )
    ● $this->params, $this->data等の参照変更
    → $this->request->params, $this->request->data
    ● その他多数
    ● オレオレUpgrade Shellを作って楽をする

    View full-size slide

  40. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● やること / やらないことを明確にする

    View full-size slide

  41. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● やること / やらないことを明確にする
    やること
    - 不要なコントローラやメソッド、ファイルがないか確
    認し削除可能であれば削除する
    - Notice, Warning撲滅

    View full-size slide

  42. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● やること / やらないことを明確にする
    やること
    - 不要なコントローラやメソッド、ファイルがないか確
    認し削除可能であれば削除する
    - Notice, Warning撲滅
    やらないこと
    - 開発速度とレビュー負荷軽減のためリファクタはしな

    View full-size slide

  43. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● 手順や注意点をGitHubのWikiにまとめてノウハウをシェア

    View full-size slide

  44. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● 手順や注意点をGitHubのWikiにまとめてノウハウをシェア
    →新規コントローラ作
    成時にはCakePHP2.8
    で開発してもらう
    →隙間時間でバージョ
    ンアップに協力してく
    れるエンジニアもでて
    きた

    View full-size slide

  45. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● 移行リスト作成&進捗見える化

    View full-size slide

  46. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● 移行リスト作成&進捗見える化

    View full-size slide

  47. 2018/6/16 PHPカンファレンス福岡
    工夫しているポイント
    ● 移行リスト作成&進捗見える化

    View full-size slide

  48. 2018/6/16 PHPカンファレンス福岡
    長い道のり...
    ●2018/3/31までにサービス側の99コントローラを移行予定だった
    ○2018/2時点での進捗:約20%
    ○他に管理画面やバッチの処理も残っている
    ●仕切り直し
    ○SREチームが引き取り再計画

    View full-size slide

  49. 2018/6/16 PHPカンファレンス福岡
    バージョンアップチームの変遷 49
    2017/2 プロジェクト始動
    2017/6 Nginx + PHP-FPM化
    2017/7 CakePHP1.3→2.8化開始
    2018/2
    SRE専任1人
    アプリ専任3人
    次々と他PJに駆り出される
    ●2018/3/31までにサービス側の99コントローラを移行予定だった
    ○バージョンアップ専任メンバー3人体制でスタート
    ■次々と他PJに駆り出される。。。

    View full-size slide

  50. 2018/6/16 PHPカンファレンス福岡
    開発効率を上げる施策

    View full-size slide

  51. 2018/6/16 PHPカンファレンス福岡
    名前空間の一括修正
    ●コントローラー移行毎の対応だと漏れやすいので一括で対応
    ●PHPStormの活用
    ○Code -> Run Insepction by Nameを選択
    ○Undefined Classを選択
    ○Custom scopeの...を選択
    ○+を選択
    ■処理を実行したいフォルダを指定して新しいスコープを作る

    View full-size slide

  52. 2018/6/16 PHPカンファレンス福岡
    動作確認の効率化
    ●PHPStormの活用
    ○ステップ実行機能
    ■ブレークポイントを設定
    ●その関数にたどり着いているかを確認できる
    ■変数の内容をリアルタイムに確認可能
    ■Docker環境でも可能
    ●設定方法をQiitaにまとめました
    ○https://qiita.com/yKanazawa/

    View full-size slide

  53. 2018/6/16 PHPカンファレンス福岡
    動作確認の効率化
    ●Dockerの活用(MailDevコンテナ)
    ○送信したメールをMailDevコンテナがすべて吸収
    ○メール内容をブラウザですぐに確認可能

    View full-size slide

  54. 2018/6/16 PHPカンファレンス福岡
    ●CakePHP2.8のDebugKitを有効にする
    ○正しく表示されるようにNginxを設定
    ●CakePHP2.8に移行されているページか確認できる
    ○移行されていれば右上にアイコンが表示されようになる
    location ~ /debug_kit/.*¥.(css|gif|ico|jpeg|jpg|js|otf|pdf|png|svg|swf|woff|zip)$ {
    root /var/www/lancers/cake28/Plugin/DebugKit/webroot/;
    try_files $uri $uri/ /;
    }
    動作確認の効率化

    View full-size slide

  55. 2018/6/16 PHPカンファレンス福岡
    ●大文字小文字問題
    ○CakePHP2.8移行時の大文字移行忘れ
    ■開発環境では大文字小文字を区別しないため気づけない
    ○Dockerの共有フォルダを利用しているために起こる問題
    ■開発環境(Windows、Mac)共通の問題
    ○検証AWS環境でようやく発覚
    $this->render('/common/json');
    $this->render('/Common/json');
    開発環境は
    大文字にし忘れてもエラーにならない
    動作確認の効率化

    View full-size slide

  56. 2018/6/16 PHPカンファレンス福岡
    ●大文字小文字問題の対策
    ○MacOS High Sierraならファイルシステム変更で対応可能
    ■APFS(大文字小文字を区別)するボリュームをマウント
    ○その他の対策
    ■Docker Syncを使う
    ●Dockerコンテナ(Linux)側のファイルシステムにする
    ■Linuxで開発する
    動作確認の効率化

    View full-size slide

  57. 2018/6/16 PHPカンファレンス福岡
    57
    SRE専任1人
    アプリ専任3人
    次々と他PJに駆り出される
    SREチームが引き取り
    新卒も巻き込み総力体制
    ●専任メンバーの増員は無理
    ○片手間で手伝えるメンバーを都度集めることに
    ■コントローラー移行手順をマニュアル化
    2017/2 プロジェクト始動
    2017/6 Nginx + PHP-FPM化
    2017/7 CakePHP1.3→2.8化開始
    2018/2
    2018/4
    2018/5
    バージョンアップチームの変遷

    View full-size slide

  58. 2018/6/16 PHPカンファレンス福岡
    進捗の見える化 58
    ●コントローラーの移行残数を見える化
    ○2018/4/17:新規開発がCakePHP1.3で行われていた分を上乗せ
    ■今後はCakePHP2.8で開発するように依頼
    ○2018/6 時点での進捗:約70%
    新規開発が
    CakePHP1.3で
    行われていた

    View full-size slide

  59. 2018/6/16 PHPカンファレンス福岡
    バージョンアップの効果

    View full-size slide

  60. 2018/6/16 PHPカンファレンス福岡
    CakePHP2.8バージョンアップの効果 60
    ●Cake Consoleの起動が早い
    ○CakePHP2.8の起動速度がCakePHP1.3の約10倍に
    $ ./cake/console/cake -app ./app console
    Welcome to CakePHP v1.3.6 Console
    ---------------------------------------------------------------
    App : app
    Path: /var/www/lancers/./app
    ---------------------------------------------------------------
    Psy Shell v0.8.14 (PHP 5.3.29 — cli) by Justin Hileman
    New version is available (current: v0.8.14, latest: v0.9.4)
    From app/vendors/shells/console.php:22:
    20| function main()
    21| {
    > 22| eval(¥LUtils¥Debug::breakpoint());
    23| }
    24| }
    >>>
    $ ./cake28/Console/cake console
    Welcome to CakePHP v2.8.9 Console
    ---------------------------------------------------------------
    App : cake28
    Path: /var/www/lancers/cake28/
    ---------------------------------------------------------------
    Psy Shell v0.8.14 (PHP 5.3.29 — cli) by Justin Hileman
    New version is available (current: v0.8.14, latest: v0.9.4)
    From cake28/Console/Command/ConsoleShell.php:16:
    14| function main()
    15| {
    > 16| eval(¥LUtils¥Debug::breakpoint());
    17| }
    18| }
    >>>
    CakePHP1.3:約10秒 CakePHP2.8:約1秒

    View full-size slide

  61. 2018/6/16 PHPカンファレンス福岡
    今後の展望

    View full-size slide

  62. 2018/6/16 PHPカンファレンス福岡
    今後の展望
    ●PHP5.6化
    ○APC→OPCacheによる高速化
    ○新しい構文が使えることによる開発の高速化
    ○SDKのバージョンアップ
    ■AWS SDK V3
    ■FaceBook SDK最新版
    ●PHP7化
    ○さらなる高速化
    ○すべてのSDKが使えるようになる
    ■FireBase Admin SDKも
    ●CakePHP3化
    ○PHP 7.2 + CakePHP 2.10まで終わってから考える

    View full-size slide

  63. 2018/6/16 PHPカンファレンス福岡
    最後に

    View full-size slide

  64. 2018/6/16 PHPカンファレンス福岡
    CakePHP 3クックブック&ソースコードリーディング
    ●毎週木曜日に開催
    ○クックブックのミスも修正PRしながら進めてます

    View full-size slide

  65. 2018/6/16 PHPカンファレンス福岡
    エンジニア絶賛募集中!
    ●弊社HP、Wantedlyからご応募ください

    View full-size slide

  66. 2018/6/16 PHPカンファレンス福岡
    ご清聴ありがとうございました!

    View full-size slide