😎

今週の PHP 2023-12-02 〜 2023-12-08

2023/12/08に公開

PHP のメーリングリストから、気になった情報をピックアップします。

Internal

RC情報

各バージョンのRCがテスト可能とのこと

  • PHP 8.3.1RC3
  • PHP 8.2.14RC1
  • PHP 8.1.27RC1

PHP: rfc:change_the_edge_case_of_round

round関数の挙動修正についてのRFCですが、否決となりました。投票にNo入れた人の意見で8系は駄目だけど9なら...みたいな言葉があるので、出し直せばワンチャンあるのかな???

New "PECL" - Externals

新しい"PECL"?? 何々、面白そう。

今のPECLは古く、文字化けもたくさんあり、メンテナンスコストが増大している。だから次の10年を見据えて、新しいPECLを作ろうじゃないか!というお便り。とても刺激的ですね。

Google Document上で新しいPECLについての使用文書が書かれています。

内容を見る限り、現在のPECLで大まかな技術仕様は変わらないようです、管理方法とかメタデータとかそういうフォーマットについて決めているのかな?

PHP test coverage - Externals

PHP: doc:articles:writing-tests

上記ページにカバレッジレポートが閲覧可能なウェブサイトが書かれているけど、アクセスできないよ?というお便り。現在閲覧可能なカバレッジレポートのページが共有されていました。面白いですね。

https://app.codecov.io/github/php/php-src

Filesystem path APIs - Externals

ファイルシステムのパスに関する新しいAPIについて、RFCを上げる前の相談スレッドです。

動機はhttps://github.com/php/php-src/issues/11258の機能リクエストだそうです。

path_join('/base', 'my', 'path'); // /base/my/path
path_join('/base', 'my', 'path', 'test', '..'); // /base/my/path

ファイルシステムで使われているセパレーターを使ったパス生成関数の機能リクエストですね。

相談スレッド側では、下記例の2つのメソッドが提案されています。

// Example usage of path_join
$result = path_join('dir1', 'dir2', '..', 'file.txt'); // Resolves to 'dir1/file.txt'

// Example usage of path_normalize
$normalizedPath = path_normalize('dir1/../dir2'); // Resolves to 'dir2'

path_normalize は相対パスを評価して整頓するような機能ですね。

現在届いているコメントは...

  • 歓迎する!
  • composer package で同じことできるやつあるじゃん
  • ほしくないけど、もう少しメリデメを議論したい

Proposal: Arbitrary precision native scalar type - Externals

任意精度の計算に関する議論スレッドです。

内容としては長いのですが、既存の任意精度計算の方法として BCMath, ext-decimal, GMP が紹介されていてその問題点も上げられています。

この議論スレッドでは、提案として10進数のネイティブスカラー数値を紹介しています。

$v=0.2d

などの表記で10進数であることを表現するというものです。また、default_decimal という宣言ディレクティブを使うと、数値が10進数で扱われるという提案も書かれています。

小数点演算に関しては、定期的にinternalsやphp-srcに質問が飛んできますが、さらに新しいルールが入ってくるとコンテキストが深くなりそうだなという感想を持ちました。

数値計算について興味のある方はスレッドを読んでみると面白いかもしれません。

Discussion