Skip to content

Instantly share code, notes, and snippets.

@pine
Last active February 4, 2016 13:48
Show Gist options
  • Save pine/47398afa559080584cff to your computer and use it in GitHub Desktop.
Save pine/47398afa559080584cff to your computer and use it in GitHub Desktop.
PHP7 Casual Talks #1

「自作OSSとPHP7対応」

  • 会社のサービスを PHP 7 へ移行することに

  • 移行するテストに、生け贄に OSS を PHP 7 へ移行することに

  • 自作サービス

    • Laravel 5.0
    • CentOS 6.5
    • PHP 5.4
    • SQLite
  • PHP 5.6 <-> PHP 7 の差分を知ることが大切

  • PHP 7 らしさはとりあえず捨てる

    • 新しい機能はひとまずおいておく
    • 速度向上だけでもメリット
  • 構成管理をすると、今後も楽

    • Ansible / Itamae
  • ライブラリの対応

    • Cake 2.x 以外は基本的に既に対応している
  • アプリを対応させる

  • テスト

    • テストがあれば、容易に壊れてないか見れる
    • Travis は既に対応
  • 結果

    • 20 〜 30 % の速度向上
  • OSS での経験を業務に還元することができた

PHP7とWordPress(仮)

  • Laravel 5.1 を利用
  • 他の勉強会では PHP 7 の話題が少ない
  • WordPress 公式に PHP 7 対応の記述は存在ない
    • 何の問題もなく 2 ヶ月動作してる
    • プラグインの対応は分からない
  • 公式に対応していると書いてないことだけ、不安

美乳とPHP7 on Docker - てきとうなさいと。

    • EUC-JP 時代の神秘
  • Cake 2.7

  • PostgreSQL

  • さくら VPS

  • Docker を使って容易に PHP 7 へ移行

  • Cake 2.7.6 には String クラスがある

    • PHP 7 では String が予約語になったので、動かない
    • Cake 2.7.7 では CakeText が別途用意されているのでそれを利用
  • PHP 5.6 のバグ修正は今年いっぱい

PHP7 x CakePHP

  • Cake

    • メジャーバージョンとして 2 系と 3 系がある
    • 現在の主流は 2 系
  • PHP 7 に対応したとのコメントが Cake 公式にある

  • PHP 7 に対応する PR にはコミットが多くある

    • しかし、だいたいはインデント揃えたとかのコミット
    • 大きな変更は 3 種類 + 1
      • 新しく Error クラスが追加された
        • 今まで Exception が投げられてた所で Error が投げられる可能性
        • Throwable インターフェイスが導入
        • Error 導入に伴って、どちらもキャッチしたい時に使用
      • 型宣言
        • PHP 5.6 ではタイプヒンティングと呼ばれていた
      • 16 進数周りの変更
        • chr('0x97') とやると Notice になる
  • PHP 7 は書きやすくなったというより、読みやすくなった

HHVMでのシステム開発事例(仮)

  • 株式会社インテリジェンス

  • サーバーサイド: HHVM/Hack

  • バッチ: Golang

  • 双方の両立を目指す

    • 組織の成果
    • メンバーの挑戦
  • なぜ Hack

    • コアメンバーが PHPer
    • 型がある
    • ダメだったら PHP へフォールバックできる
  • フレームワーク

    • FuelPHP
    • フレームワークは PHP で、アプリケーション部分は Hack で記述
  • Hack の利点

    • ラムダ式
    • コレクション
    • 静的解析が可能 (hh_client)
  • HHVM は安定しているか?

    • 以前は不安定だったが、最近は安定している
    • プロダクション環境でも問題ない

最速配信研究会 PHP分室

  • au スマートパスの開発

  • PHP 7 の性能の話

  • フレームワーク

    • yii
    • 共産圏の秘密兵器
  • LEMP

    • CentOS
    • nginx
    • PHP + PHP-FPM
    • MySQL 5.6
  • インフラ

    • 構築: Chef + Packaer
    • テスト: Test Kitchen
    • 開発環境: Vagrant
    • 攻撃: Catling
  • 結果

    • PHP 5.6 のほうが早いw
    • PHP 7 にしたからといって、必ず早くなるわけではない
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment