Current status of 3rd party extensions on PHP7
PHP7の
拡張モジュール事情
hnw
第94回PHP勉強会@東京

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

PHP7の拡張モジュール事情