今週の PHP 2024-02-03 〜 2024-02-09
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