💨

今週の PHP 2024-08-10 〜 2024-08-16

2024/08/16に公開

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

Internal

PDO_Firebird: use C++? - Externals

Firebirdの新しいAPIに対応する拡張機能はC++で書くべきかな?というお便り。どうやらC++方向で肯定的なようです。そういえば、OpenCVとかも新しいAPIはC++だったなぁと思うと、結局C++の知識も必要になってくるんだなという気持ちになりました。

PHP: rfc:static_class

staticクラスに関するRFCですが否決されました。アイデア自体は面白そうでしたが、いるかなぁ??みたいな内容であったことも確かなので難しかったですね。

Require C11 in PHP 8.4 - Externals

PHPをC11に準拠するべきではというお便り。C99は1999年制定ということで、C11準拠というのは妥当な意見だと思いますが、PHPも歴史が古いから...辛いのかもなぁ。

Support for pkg-config .pc files - Externals

pkg-config 用の定義ファイル?? .pcを作っておくと、依存関係の解決とかがシンプルにできるようになるとのこと。そうなんだ。
PHPのコンパイルに pkg-config が使われているのは知ってたけど、まだその能力を引き出せてなかったということか。

[DISCUSSION] C++ Enhancements in Zend API - Externals

PHPをC++で開発できるように...というお便りでしたが、猛反発を受けた上に、それならRustで...となっており面白いスレッドです。

[Discussion] Should All String Functions Become Multi-Byte Safe? - Externals

すべての文字列関数をmulti-byteセーフにすべきか?というお便り。気持ちは分かるけど、mbstringで分割統治されているほうが、管理は楽なんじゃないかなぁと思いました。

[RFC] On the need of a is_int_string ? - Externals

is_int_string という新しい関数についての提案です。 is_numeric と違うのか?というと、完全に整数としてキャストされるかどうかをチェックする点が違うようです。

is_numeric('08') => true
ctype_digit('08') => true
is_int_string('08') => false

is_numeric('8') => true
ctype_digit('8') => true
is_int_string('8') => true

is_numeric('+8') => true
ctype_digit('+8') => false
is_int_string('+8') => false

is_numeric('8.4') => true
ctype_digit('8.4') => false
is_int_string('8.4') => false

あんまり、これが必要なユースケースが自分の周りにないのでピンと来ない...

Should there be a get_declared_enums() function ? - Externals

get_declared_enums という新しい関数の提案です。これにより、宣言されたenumを一覧で取得することが出来るようになります。主に抽象プログラミングとか、リフレクションで活用されそうなヤーツですね。

なんとなくですが、追加されそうな気がします。

[DISCUSSION] Class Constant Enums? - Externals

クラス内に内包するEnumを持てるようにするという提案です。でもEnumって内部的にはクラスと同じだったような、そうするとこのような内部クラスはそもそも表現できるんだろうか?psr-4で読み込めるのだろうか?などと疑問は着きませんね。

個人的にはクラス内に閉じ込められることの良さも感じますね。必要になったら、外出しすればいいですしね。

Discussion