🙄

今週の PHP 2023-12-23 〜 2023-12-29

2023/12/29に公開

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

Internal

[RFC] [Discussion] Final by default anonymous classes - Externals

無名クラスをデフォルトでfinal(拡張不能)とするRFCです。以前提案されたRFCよりも強制力は強くて、デフォルトで無名クラスはfinalにしようというものです。オプションとして拡張可能にするキーワード(open?)を追加しようという案も書いてあります。難しそうな気がします。

前回否決された無名クラスのfinal化オプション追加のRFCはこちら

PHP: rfc:final_anonymous_classes

Partitioned cookies - Externals

Partitioned cookies というものを知りませんでした。

Cookies Having Independent Partitioned State (CHIPS) - Privacy on the web | MDN

実験的な機能で、別名CHIPSと呼ばれるようです。この記事を書いている時点(2023/12/27)では、SafariやFirefoxではサポートされていないです。

The aim is to allow cookies to be set by third-party services, but only read within the context of the top-level site where they were initially set.

いわゆる3rd Party Cookie に近いけど、トップレベルドメインのサイトからしか読み込むことが出来ないという特性を持っているようです。

This allows cross-site tracking to be blocked, while still enabling non-tracking uses of third-party cookies such as persisting state of embedded maps or chat widgets across different sites, and persisting config information for subresource CDN load balancing and Headless CMS providers.

クロスサイトトラッキングはブロックしつつ、3rd Partyからのクッキー設定によってトップレベルドメイン側が状態を管理したりする用途に使えるという記述があります。

SSOのログアウト問題とかでも利用できそうですね。

Cookies Having Independent Partitioned State specification RFC6265の拡張仕様という位置づけのようです。まだDraftっぽいですね。

Internalsに投稿されたのは、この拡張仕様に対応したコード修正のPRです。

Symfonyではすでに2023年の10月に対応が終わっているようです。さすがですねぇ。

[HttpFoundation] Cookies Having Independent Partitioned State (CHIPS) by fabricecw · Pull Request #52002 · symfony/symfony

ってことは、Laravelとかでも使えるのかな。今度試してみよう。
今後のブラウザの対応具合にもよりますが、利用できれば今まで難しかったクロスサイトでの状態管理が安全に行えるようになりそうですね。

RFC proposal: worker mode primitives for SAPIs - Externals

メリークリスマス

Franken方面からのお便りです。workr mode primitivesの提案について、どう思いますかという内容です。

Franken, Laravel Octane, Swoole などが各自で実装しているWorker Mode をSAPIとしてPHPのmainに組み込もうということなのでしょうか。

まだまだ、私の知識が弱い方面なのであんまり詳しくはわかりませんでした。

Pre-RFC: Fixing spec bugs in the DOM extension - Externals

DOM拡張の仕様修正についてのお便りです。既存から抱え続けるバグが多量に存在していて、誤った実装がおこなわれているようです。名前空間や属性を整理する必要があるということで、実際のPRを元に感想を聞かせてくださいというお便りです。

Pre-RFCというタイトルから分かる通り、最終的には修正はRFCとして提案されるようです。同様のことがmbstringでは結構カジュアルに行われていたような気がしていたが、気の所為だろうか......

new MyClass()->method() without parentheses by vudaltsov · Pull Request #13029 · php/php-src

これ好き。
このPR作った方が、Karma Request(RFCを作るためのアカウントリクエスト)をしていたので期待!

Discussion