今週の PHP 2024-08-10 〜 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