👌

今週の PHP 2024-02-03 〜 2024-02-09

2024/02/11に公開

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

Internal

[Proposal] Add savepoint() method to PDO - Externals

データベーススペシャリスト試験でも良く出てくる savepoint です。トランザクション内で安全にロールバック可能な中間地点を作ることができます。

PHP: トランザクションおよび自動コミット - Manual

現状のPDOは savepoint を抽象化レイヤーとしてサポートしていません。追加されることで、細かなトランザクション制御が安全(かどうかは知らんが)に実装できそうですね。

現状でも exec で直接クエリを発行することで savepoint 自体を利用することは可能ではあります。

コメントの評判も良さそう。

PHP: rfc:rfc1867-non-post

POST以外でも multipart/form-data のパースをユーザーが選択的に行えるようにするRFCです。
無事、承認されました🎉

PHP: rfc:mb_ucfirst

mb_ucfirst mb_lcfirst の追加に関するRFCです。投票中ですが、賛成票が集まってきましたね。
比較的穏便なやり取りをしつつ、RFC自体の改善も行われているので大丈夫そう。

Why are serialized strings wrapped in double quotes? (s:<len>:"<string>") - Externals

シリアライズされた文字列が二重引用符でくくられているのはなぜ?という質問
なぜ、このような質問をしたかというと、PHPのシリアライズ文字列を返すAPIがあるそうですが、二重引用符なくてもいいんじゃないか?もっと効率的な形式があるんじゃないか?ということが気になったようです。

PHPのシリアライズ文字列を返すAPIってのもすごいですが、良い質問だなと思いました。

歴史的にはPHP3くらいから存在しているようで、理由というものはよくわからないみたいです。同じ頃に書かれたevalのコードの影響を受けたとかなんとか......

コメントでも語られていますが、messagpackとかigbinaryとか、より効率的な形は確かにありそうですね。人間が読むことを想定してないわけなので。

Discussion