PHP7の拡張モジュール事情

6,916 views

Published on

第94回PHP勉強会(2015/10/1) 発表資料

Published in: Software

PHP7の拡張モジュール事情

  1. 1. Current status of 3rd party extensions on PHP7 PHP7の 拡張モジュール事情 hnw 第94回PHP勉強会@東京
 (2015/10/1) 発表資料
  2. 2. 自己紹介 ❖ @hnw ❖ 勤務先:KLab株式会社 ❖ カレーとバグが大好物 ❖ 闇PHP勉強会、引き継ぎました
  3. 3. 最近PHP7ネタばかり
  4. 4. ところで
  5. 5. 今年のテーマは「7」
  6. 6. 発表者の皆さん PHP7入ってますか (プレッシャー)
  7. 7. 今からでも 間に合いますよ! (プレッシャー)
  8. 8. PHP7と拡張モジュール ❖ PHP7、そろそろリリースですね ❖ PHP5と7では拡張モジュールの互換性がありません ❖ 改修しないと拡張モジュールが動きません
  9. 9. \な、なんだってー/ Ω ΩΩ
  10. 10. 拡張モジュールの対応状況 ❖ PHP同梱の拡張モジュールはPHP7対応済み ❖ OPcache, mbstring, cURL, PCRE, PDO, … ❖ 3rd パーティ製の拡張モジュールはどうなってる? ❖ 調べてみました!
  11. 11. APCu ❖ プロセス間通信の無いキーバリューストア ❖ https://github.com/krakjoe/apcu ❖ PHP7対応:○ ❖ sevenブランチが存在 ❖ PHP7でビルド可能 ❖ make test : 21pass / 1fail
  12. 12. memcached ❖ キーバリューストアmemcachedのPHPバインディング ❖ https://github.com/php-memcached-dev/php-memcached ❖ PHP7対応:○ ❖ php7ブランチが存在 ❖ PHP7でビルド可能 ❖ make test : 106pass / 1warn / 1fail
  13. 13. redis ❖ キーバリューストアRedisのPHPバインディング ❖ https://github.com/phpredis/phpredis ❖ PHP7対応:○ ❖ php7ブランチが存在 ❖ PHP7でビルド可能 ❖ Has no test !!! / 簡単なコードなら動いた
  14. 14. amqp ❖ ジョブキューRabbitMQのPHPバインディング ❖ https://github.com/pdezwart/php-amqp ❖ PHP7対応:○ ❖ PHP7対応PullRequestが取り込まれそうな状態 ❖ PHP7でビルド可能 ❖ make test : 113pass / 3fail
  15. 15. gearman ❖ ジョブキューGearmanのPHPバインディング ❖ https://github.com/hjr3/pecl-gearman ❖ PHP7対応: ❖ メンテナが対応している気配が無い ❖ 第三者の作ったphpngブランチもマトモに動かない
  16. 16. imagick ❖ 画像変換ツールImageMagickのPHPバインディング ❖ https://github.com/mkoppanen/imagick ❖ PHP7対応:○ ❖ phpsevenブランチが存在 ❖ PHP7でビルド可能 ❖ make test : 230pass / 14fail
  17. 17. xhprof ❖ PHPプログラムのプロファイラ ❖ https://github.com/phacility/xhprof ❖ PHP7対応: ❖ 中の人は最近PHPやってなさそう…? ❖ 第三者が作ったphp7ブランチがあるが、不完全そう
  18. 18. Xdebug ❖ PHPプログラムのプロファイラ・デバッガ ❖ https://github.com/xdebug/xdebug ❖ PHP7対応: ❖ 中の人が対応中っぽいけど、まだ動かなさそう
  19. 19. geoip ❖ IPアドレスから地域情報を得るライブラリ ❖ http://svn.php.net/viewvc/pecl/geoip/ ❖ PHP7対応:○ ❖ 1ソースでPHP5/7両対応 ❖ PHP7でビルド可能 ❖ make test : 15pass / 2fail
  20. 20. uuid ❖ UUID生成・検証関数を提供する拡張モジュール ❖ http://git.php.net/?p=pecl/networking/uuid.git ❖ PHP7対応: ❖ 4ヶ月前にPHP7対応のcommitがあった ❖ 今のPHP7ではビルドが通らない
  21. 21. PHP7対応って大変なの? ❖ C関数をPHPから叩くだけなら「やればできる」 ❖ PHP7対応の拡張モジュールを2個書きました ❖ ext/ext_skelから作る分にはPHP5の頃と変わらない ❖ PHP5/7両対応にするのは結構面倒 ❖ PHPを機能拡張するような拡張モジュールは対応が面倒 ❖ runkitとかPHP7対応できるのかしら…
  22. 22. まとめ ❖ 拡張モジュールのPHP7対応状況を調べました ❖ ○6 / 4 ❖ 有名どころの対応状況は良好 ❖ 普通の拡張モジュールは「やればできる」 ❖ 技術的困難はない ❖ xhprof・Xdebugあたりは時間が必要そう
  23. 23. ご静聴 ありがとう ございました

×