php-master-changes 2018-10-03

今日は Reflection のバグ修正やリファクタリング、Windows の fastcgi 環境でのバグ修正、受理された RFC で ext/hash を常時有効にする奴の取り込み、アサーションの追加と継承処理の改善、ext/zip の拡張のバージョン記述を上げる、という感じだった！

# 2018-10-03
## nikic: Fixed bug [#76936](https://bugs.php.net/bug.php?id=76936)
- https://github.com/php/php-src/commit/d2477b284b73adb12fb9694d144855a468fe8825
- [7.2~]
- Reflection のエラー発生時でエラーハンドラが何らかのクラスのメソッドである際、自身の private プロパティへアクセスできない問題の修正

## nikic: Fixed bug [#66430](https://bugs.php.net/bug.php?id=66430)
- https://github.com/php/php-src/commit/f0647edd88ca2a2d4e15b4019a3694ef1dbe33f9
- [7.2~]
- ReflectionFunction でクロージャを起動しようとする際、オブジェクトのコンテキストが[正常に反映されない](https://3v4l.org/rWFHv)問題の修正

## nikic: Some reflection cleanups
- https://github.com/php/php-src/commit/10b1ab92754c05735b4a8118d84605856d73e539
- ext/reflection のコード整理

## weltling: Fixed bug [#76947](https://bugs.php.net/bug.php?id=76947) file_put_contents() blocks the directory of the file (\_\_DIR__)
- https://github.com/php/php-src/commit/8209a8821cc934f81ffaa46dd8b0d0f2f546211f
- [7.3~]
- Windows で fastcgi で実行中、file_put_contents() を実行するスクリプトがそのファイルのディレクトリの削除を PHP プロセス終了までできなくする、という問題の修正

## KalleZ: Implemented RFC "Always available hash extension"
- https://github.com/php/php-src/commit/bf344425812b0f6156d0a8a54ed7bc38054f7636
- [RFC](https://wiki.php.net/rfc/permanent_hash_ext) 出ていた奴の取り込み
- ext/hash の API を SAPI や他拡張で利用可能になる

## KalleZ: Update hash tests for consistency in their titles and remove the skipif sections (except for the mhash related tests)
- https://github.com/php/php-src/commit/f73c0102d6c33c00aaf01cf84fa076f5171a94a1
- ext/hash のテストのタイトルを一貫性あるやつに変えるとともに、skipif を（mhash 関係以外）潰した

## KalleZ: Fix compiler warnings in ext/hash
- https://github.com/php/php-src/commit/596fbf7393777cb14006813111875db5b0a21d3b
- ext/hash のコンパイラ警告潰し

## KalleZ: Revert "Fix compiler warnings in ext/hash"
- https://github.com/php/php-src/commit/f7991ca656bd5a08d37095a7c18159865a885a64
- ↑のリバート
- size_t を unsigned int にキャストするのはどうかという奴だった

## nikic: Remove uses of apply_with_arguments API in reflection
- https://github.com/php/php-src/commit/ac96a57818f02b996538c1562a965c9e5b85c712
- ext/reflection で zend_hash_apply_with_arguments() の利用をやめて ZEND_HASH_FOREACH を使うよう修正
- ついでに直ったバグがあるのと、getProperties() の最適化も多少ついでにやってるみたい

## nikic: Reflection: Copy invoke function also in the variadic case
- https://github.com/php/php-src/commit/945f315506538208705d370f39a6896371e48ebb
- [7.1~]
- ext/reflection で、トランポリン関数のコピーに可変引数かどうかという不要な分岐があったのを削除

## nikic: Write to correct smart_str
- https://github.com/php/php-src/commit/1e14b7a369108ea89cee2c939719297b930d6d9d
- ext/reflection の [ZEND_HASH_FOREACH への移行修正](#nikic-remove-uses-of-apply_with_arguments-api-in-reflection)で入れていたバグを修正

## dstogov: Added assertions
- https://github.com/php/php-src/commit/9418144054122463585beb0a65445a92757a871d
- アサーションの追加

## dstogov: Avoid method compatibility check with itself
- https://github.com/php/php-src/commit/c88b53318fe2609e26d58c9b3c6d5923e1da9736
- メソッド継承時に自分自身との互換性チェックを避けるよう修正
- 継承の実行時、親と自身で同名の同じ関数があるなら引き継ぎ処理を行わないという内容
- typo ってるコメント見ると、他から継承する interface で親と同じメソッドを宣言、みたいな奴を想定してるのか？

## KalleZ: Second round of fixing compiler warnings in ext/hash. Lots of the signatures that previously was unsigned int is now size_t, there was a fair bit of inconsistency there already and this commit should make it all sync nicely
- https://github.com/php/php-src/commit/84b0d0fabaaf21ee056984a33b573121296af942
- ext/hash のコンパイラの警告潰し再挑戦、シグネチャの方を size_t とるよう修正

## KalleZ: Remove $ext_shared usage for ext/hash in the Unix build script (Thanks Christoph for the notice)
- https://github.com/php/php-src/commit/c11632679366cf8c3f2a7a9cfef77115891c9e71
- ext/hash について[ツッコミ](https://github.com/php/php-src/commit/bf344425812b0f6156d0a8a54ed7bc38054f7636#r30749011)が入り、ビルドスクリプトの $ext_shared もういらないじゃんね！というので 0 に

## weltling: Fixed bug [#76948](https://bugs.php.net/bug.php?id=76948) Failed shutdown/reboot or end session in Windows
- https://github.com/php/php-src/commit/b0547a3dfba6702e7cc94476d4d422374c20b4b8
- [7.1~]
- Windows 版 sapi/cgi で、Windows セッションを PHP 起動中に終了させようとすると延々ダイアログが出るというホラーっぽいバグを修正

## remicollet: bump zip extension version
- https://github.com/php/php-src/commit/da05b7e81e419e8199058cde6f5b1f37a1a98e4e
- [7.2~]
- ext/zip で拡張のバージョン記述を 1.15.4 に上げた

## dstogov: typo
- https://github.com/php/php-src/commit/b9e485a7fda82306335f28077ba9c719475f65ea
- コメントの [typo](#dstogov-avoid-method-compatibility-check-with-itself) を修正
- Dmitry 御大のコミットわりと typo あって大変人間味がある

## KalleZ: Hopefully last round of size_t fixes, this makes the remaining php_hash_ops use size_t over an int
- https://github.com/php/php-src/commit/5268f367ce8a1c6e6053cc029224f877b3c0bc8b
- ext/hash で int へ size_t をキャストしてとるようになってた部分も size_t とるよう修正

## weltling: Avoid code duplication and don't miss env restore
- https://github.com/php/php-src/commit/044eb39e633c91d55b339415ee5749a46496ffd9
- [7.1~]
- [前の修正](#weltling-fixed-bug-76948-failed-shutdownreboot-or-end-session-in-windows)で環境変数を復元していなかったのを修正、重複コードも除去