インフィニットループ 技術ブログ

2022年11月29日 (火)

著者 : s-igarashi

帰ってきた PHP ニュース  2022年11月29日号

インフィニットループ仙台支社のプログラマー、いがらしです。
PHP 界隈の気になったことをまとめ、かつてはだいたい月一くらいで宮城県仙台市からお送りしておりました。
うかうかしている間に前回から 3 ~ 4 年くらい経った気がしますが、皆さまいかがお過ごしでしょうか。
少し間があいたのはあまり気にしないことにして、PHP 界隈の最近気になったことをまとめます。

※ なお、画像のPHP ロゴは作者の Colin Viebrock さんによってリリースされ、CC BY-SA 4.0 でライセンスされているものです。

php-src

PHP 8.2.0RC6 available for testing

  • https://externals.io/message/118992
  • PHP 8.2.0 RC6 がリリースされた
  • 今年は当初予定より追加でさらに 1 つ RC 版(RC7)が出る
  • 8.2.0 の正式リリースは 12/8 へ延期

PHP 7.4.33 Released!

  • https://externals.io/message/118949
  • PHP 7.4 系の最後のリリースとなる 7.4.33 がリリースされた
  • 今月に PHP 7.4 はセキュリティサポート期間を終え、来月以降の脆弱性修正は行われなくなる

[RFC] Asymmetric Visibility, with readonly

[RFC] Destructuring Coalesce

[RFC][Dynamic class constant fetch]

[RFC] [Discussion] Readonly class amendments

  • https://externals.io/message/119007
  • 8.2 で追加された readonly class修正提案についての議論
  • readonly クラスの非 readonly クラスでの継承禁止をやめる修正と、readonly プロパティについて __clone での再初期化を可能にする提案

[VOTE] Randomizer Additions

Removing OS2 specific code

PHP-FIG

PSR-20 Clock

気になったプロジェクト

https://github.com/CuyZ/Valinor

  • cuyz/valinor は配列や JSON など各種の値を PHP の型へマップするライブラリ
  • Psalm PHPStan など静的型解析を使うプロジェクトでスクリプト外からの入力を扱うのに便利
  • 1.0.0 がリリースされた

https://github.com/mariosimao/notion-sdk-php

  • Notion の PHP SDK 1.0.0 がリリースされた

https://github.com/matthiasnoback/php-ast-inspector/

  • PHP コードの AST 構造を対話的に追いかけられるツール、面白い

https://phpstan.org/blog/phpstan-1-9-0-with-phpdoc-asserts-list-type

  • PHPStan 1.9.0 がリリースされた
  • 原作者の人はゴリゴリコードを書くフェーズを抜け、ほかのコントリビュータがビシバシ新機能を実装してくれる良い状況に入ったらしい
  • @phpstan-assertlist 型のまともなサポート、@param-out のように Psalm の機能の取り込みが進んでいる

https://github.com/vimeo/psalm/releases/tag/4.30.0

  • psalm 4.30.0 がリリースされた
  • PHPStan 1.9.0 で追加された @phpstan-assert を解釈できるようにする修正が入っていたりする

https://qossmic.github.io/deptrac/

  • PHP の部品間依存関係チェック用ツール Deptrac の 1.0.0 がリリースされた
  • PHP 8.1 以降での動作が前提

https://www.devsense.com/en/purchase

  • VSCode / VisualStudio に対応する PHP プラグインの DEVSENSE にフリー版が出た
  • ジェネリクスのサポートもしているらしい
  • 手元のプロジェクトで VSCode 版を試した限り、現状では PhpStorm のほうがよりよくジェネリクスを解釈してくれるもよう

https://frankenphp.dev/

  • Go の Caddy で HTTP をさばきつつ ZTS な PHP 処理系でスレッドプールを立てて通信させる、という新たな SAPI
  • HTTP 3 や 103 Early Hints に対応している他、Worker mode での動作をサポートしており、RoadRunner 風のリクエスト間で状態を持ち越す形態での高速化も可能
  • opcache のサポートが php-src 側へ入っている

https://github.com/compositephp/db

  • CycleORM ベースなクエリビルダを持つ ORM

https://github.com/pmjones/throwable-properties

  • pmjones の人の PHP ライブラリ
  • \Throwable\json_encode() してもいい感じの情報がとれなかったりするので、コンストラクタで \Throwable をとってひと通りの情報を取得する \JsonSerializable\StringableThrowableProperties というクラスを作ってる

https://github.com/krakjoe/parallel

  • PHP のマルチスレッド拡張 krakjoe/parallel に PHP 8.1 までへ対応した v1.2.0 がリリースされた

https://github.com/revoltphp/event-loop

  • PHP の Fiber 対応イベントループ実装 Revolt の 1.0.0 がリリースされた

https://github.com/TysonAndre/immutable_cache-pecl

https://relay.so/

  • PHP 用の新しい Redis クライアント
  • ローカルキャッシュを持ち、また作者の話によるとローカルキャッシュを切っていてもなぜか他のクライアントライブラリより速いとのこと?
  • コアになる部分はネイティブコードの拡張によるものだが、その拡張部分はバイナリ配布のみで OSS ではない

https://github.com/apache/skywalking-php

  • PHP 対応の比較的新しい APM

https://github.com/DataDog/dd-trace-php/tree/master/profiling

  • DataDog の APM に追加された PHP プロファイラがよく見ると Rust 製だった

https://github.com/carp3/php-megadrive

最近に見た英語記事

The PHP Foundation: Impact and Transparency Report 2022

  • https://thephp.foundation/blog/2022/11/22/transparency-and-impact-report-2022/
  • 昨年設立された The PHP Foundation の 2022 年の活動振り返りレポート
  • $580,000 もの寄付が集まり、6 人のパートタイム開発者を雇い、4 月から 11 月にかけての php-src へのコミットの半数近くがそのメンバーによるもの
  • 引き続きコア開発者への支援を拡大していくもよう

Why I Don’t Enjoy Writing PHP Anymore

Laravel 10: release date and new features

How to Measure Your Type Coverage

コミュニティの議論など

https://twitter.com/ogi_chotdake_se/status/1585089895370207234

  • PHP の __invoke() 利用について日本語での twitter 上の議論

Thoughts on filter_var?

json_validate function got accepted for PHP 8.3

  • json_validate() が PHP 8.3 に入るよという話
  • いきなりデコードしにかかるよりメモリ消費量が少し抑制できるのが利点

What are modern profiling tools?

  • PHP の現代的なプロファイルツールはなんですかという reddit での議論
  • あまり名前が出ない Pyroscope (phpspy のラッパー) を挙げている人がいた

Let’s make it happen: Wish list for next major version (vNEXT)

  • ReactPHP の次バージョンに何を入れようという GitHub 上での議論スレッド
  • 静的解析のサポートは強めてほしい

Third party PHP repository will be removed from the Ubuntu 22.04 image

  • 現在の GitHub Actions で Ubuntu-latest として提供している Ubuntu 20.04 のイメージはサードパーティによる複数バージョンの PHP 処理系インストールを含んでいるが、Ubuntu 22.04 からはオフィシャルにサポートされている 1 つのみを付けるという話が出ている

What are the popular PHP Frameworks you are using for the development of web applications and why?

  • Reddit での人気の PHP フレームワークについての議論
  • よく名前を聞く PHP フレームワークは Laravel と Symfony の 2 強にすっかり収束した感がある

Temporal PHP SDK: Scalable and resilent workflow orchestration on PHP

他のニュースサイトなど

https://blog.jetbrains.com/phpstorm/2022/11/php-annotated-october-2022/

  • JetBrains さんが毎月出している PHP ニュースの 10 月分

https://zenn.dev/hanhan1978

  • 「今週の PHP」として毎週 PHP 処理系周辺の情報を日本語でまとめている人が Zenn にいる、すごい

Events

PHPerKaigi 2023

The New PHP Foundation: What Impact does it have? – Sebastian Bergmann, Robert Lemke, Roman Pronskiy

社内の slack へ「今日の学び」というチャンネルを作って以来、この記事で挙げているようなネタを毎日流しています。まとめて技術ブログへ流すだけでも大体以前にやっていた PHP ニュースに近い内容になるな、と思いついたので、実際にやってみた次第です。話題によってはこれらのトピックについて社内で追加の議論が行われることもあります。「今日の学び」チャンネルで PHP の話題以外にどんな話が流れているか、も、また別の機会に紹介したいと思います。何か面白い話や目新しい話が 1 つでもあれば嬉しいです。

インフィニットループでは、PHP の最新技術動向や技術者のお祭りが気になるエンジニアを募集しています。 詳しくはこちらの求人詳細をご覧ください → 採用情報ページ (仙台支社特設ページはこちら

ブログ記事検索

このブログについて

このブログは、札幌市・仙台市の「株式会社インフィニットループ」が運営する技術ブログです。 お仕事で使えるITネタを社員たちが発信します!