2018」の5日目の記事です。田中(@tenkoma)です。2にPHP7.3対応のプルリクエストを送ろうとしたけど先を越されてしまった話をします。CakePHPのPHP7.3対応状況PHPはPHP7.0以降、大きな機能追加のあるバージョンが年1回リリース*1されるようになりました。todo:php73)、毎年9月中までにはRC版が公開されているようです。活発なPHP製OSSプロジェクトなら、ビルドスクリプトにPHPの新しいバージョンを追加して、互換性が確認できているか確かめられるようになっているかもしれません。マージしていたようです。RC3が出た頃に状況を確認しました。7.3互換性対応のプルリクエストがマージされたことがあるが、全テストケースがパスしているかはわからない状況みたいでした。7.3メンテナーがローカルでテスト実行して問題ないことを確認したようです。7.3の勉強にもなるし、やってみるか〜ということで作業することにしました。7.3でテストを実行するためのプルリクエストをつくり、マージしてもらいました。Errorsと表示されましたが、ほぼ同種のエラーがいろいろなテストに発生しているだけで、修正はたいしたことありません。自分のアカウントにフォークしたリポジトリもTravisの設定を追加していたので、一つ一つ修正してはプッシュしてエラーを確認していったところ、残り1箇所まで減らすことができました。Polyfillのテストでした。使えるよう、関数が用意されています。Multibyteクラスで実装されています。CIでmbstring拡張が有効になっており、組み込み関数が呼び出されて、そこでテストが失敗していました。RC版の不具合かとも思いましたが、これは文字ケース変換の機能拡張のようです。7.3で仕様が変わることはわかりましたが、どう直すか悩みました。クラスの仕様をPHPにあわせて拡張するのもどうかと思いましたし(実装難しそう...)互換性を諦めて、テストを削除してしまえばいいか、とも考えました。それから何もせず1日経ったところで次のプルリクエストを見つけました。errorsコミットの内容はほぼ一緒で、mb_strtoupper()のテスト失敗はそのままでしたが、見事に先を越されてしまいました。先にプルリクエストを出して、スレッドで相談しながら決めれば良かったんですよね。Fast」にしたがって、早く出せば良かったな、と思いました。実装コードの修正を2点紹介します。未定義変数名を含めることができました。Errorになります。switch文ではbreak文の代わりにcontinue文を使うことができましたが、switch文の外側のループを対象にした命令のつもりでも、switchへのbreak文になる問題がありました。Errorとなります。8では構文エラーになるそうです。blogまとめプルリクエストはある程度できたら出しちゃったほうがいいこともあるよ!明日はid:pigooosukeです。Calendar」の記事一覧はこちら。)の開発チームによるブログです。Groupの大木です。Developerをしている東口です。Groupのマネージャーをしている山田です。12/1から始まっ...Archiveスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。