2022 年の PHP – Stitcher.io

in Vlog

(jp) =

毎年「PHP in 20XX」の投稿を書くのはこれで 4 回目ですが、今年ほど興奮したことはないと言わざるを得ません。列挙型、昇格されたプロパティ、およびファイバー。 それに加えて、静的分析コミュニティは大きな進歩を遂げています。私の個人的なお気に入りの機能は、ジェネリックをサポートするようになった PhpStorm です。 いつ コードを書く。

エキサイティングな時代が近づいています。現代の PHP を見てみましょう。


# PHP 8.1

このリストは、1 か月ちょっと前にリリースされた最新の PHP バージョンから始めずにはいられません。 私の主なプロジェクトは、本番環境で PHP 8.1 で実行する準備がすでに整っています。これには非常に興奮しています。 マイナー リリースでは期待できないかもしれません — 大きな破壊的変更はなく、非推奨の通知が追加されただけです — しかし、PHP 8.1 はいくつかの非常に優れた機能をもたらします。 個人的なベスト3はこちら。

列挙型が言語に組み込まれました。

enum Status

    case draft;
    case published;
    case archived;
    
    public function color(): string
    
        return match($this) 
        
            Status::draft => 'grey',   
            Status::published => 'green',   
            Status::archived => 'red',   
        ;
    

私たちは使用することができます new 初期化子で:

class PostStateMachine

    public function __construct(
        private State $state = new Draft(),
    ) 
    

そしてもちろん、読み取り専用プロパティ:

class PostData

    public function __construct(
        public readonly string $title,
        public readonly PostState $state,
        public readonly DateTimeImmutable $publishedAt,
    ) 

これは、PHP 8.0 のプロモートされたプロパティと組み合わされて、非常にクリーンなデータ クラスになります。 違いを視覚化するために、PHP 5.6 で記述された、同じ機能を持つ同じクラスを次に示します。

class PostData

    
    private $title;
    
    
    private $state;
    
    
    private $publishedAt;
   
   
    public function __construct(
        $title,
        $state,
        $publishedAt = null
    ) 
        $this->title = $title;
        $this->state = $state;
        $this->publishedAt = $publishedAt;
    
    
    
    public function getTitle()
    
        return $this->title;    
    
    
    
    public function getState() 
    
        return $this->state;    
    
    
    
    public function getPublishedAt() 
    
        return $this->publishedAt;    
    

私が興奮している理由がわかりますか? PHP は、すべてのリリースでこれらの素晴らしい構文の改善を受けています。 書くのがますます楽しくなってきました! もちろん、最新の PHP にはさらに多くの機能が追加されています。簡単な概要が必要な場合は、私の 3 分間のビデオをチェックしてください。スクロールして読み続けることもできます。

# 静的分析

すでに簡単に触れましたが、PHP での静的解析は大幅に成長しています。

  • Laravel のようなフレームワークは、ますます静的型付けを採用しています (静的解析を支援することのみを目的としてコードと docblock を作成しています)。
  • PhpStorm はジェネリック型のサポートを追加しました。ジェネリック コードを記述して IDE にそれを理解させることができれば、それは非常に重要です。 その間 あなたはそれを書いています。
  • PhpStan と psalm は成長する一方です。 そして最後に

  • 静的分析に関する私自身のニュースレター シリーズは、1,500 人以上の参加者でかなりうまく機能しており、ますます多くの人々がこのトピックに関心を持つようになっています。

なぜ PHP で静的解析が重要なのか、そしてなぜ静的解析に興奮しているのかについて簡単に知りたい場合は、次のブログ記事をご覧ください。「実行時の型チェックは不要です」.

# PHP の基礎

2 か月前、PHP の世界ではかなり大きなニュースがありました。おそらく 2021 年最大のニュースかもしれません。最もアクティブなコア メンテナーの 1 人である Nikita が辞任して LLVM に取り組んでいます。大企業は最終的にコア開発を持続可能なものにします。

簡単に言えば、PHP コアの開発に資金を提供することを唯一の目的とする非営利団体である PHP Foundation です。 このイニシアチブは、プロジェクトにすでに 100,000 ドルを約束している JetBrains によって推進されています。 他の多くの企業と並んで、彼らは現在 $329,920.75 を調達しています。 良いスタートです!

その資金は、コア開発の資金に使用され、以前は PHP に取り組むことができなかった人々に扉を開きます。 Foundation の使命と目標の詳細については、JetBrains のブログ投稿をご覧ください。

# エコシステム

毎年のように、今では 300 万を超える登録バージョンと 300.000 を超えるパッケージを持つ Packagist について言及せずにはいられません。 ご覧のとおり、エコシステムは成長を続けており、2022 年も変わりません。

ところで、つい最近、Packagist は 500 億以上のインストールを処理するというマイルストーンを通過しました。 おめでとうございます。

# 非同期 PHP

非同期コミュニティにおけるエキサイティングな開発の 1 つは、Amp と ReactPHP の 2 つの主要な非同期プレーヤーである開発者が協力して、Revolt PHP と呼ばれるファイバー互換のイベント ループ実装を作成したことです。

コミュニティ全体と比較すると、async PHP はごく一部でしか使用されていません。 それでもなお、async コミュニティが力強く、最新の PHP を受け入れているのを見るのは良いことです。

# サーバーレス PHP

私が傍観してきた興味深い開発は、サーバーレス PHP です。 私の相棒 マチュー・ナポリ は、この比較的新しい PHP の使用方法について PHP 開発者を教育することを使命としており、かなりうまくやっているようです。 サーバーレス PHP を簡単にする彼のオープンソース プロジェクトである Bref を確認するか、2022 年のサーバーレス PHP に関する彼のコースを確認してください。

私自身はユースケースを持っていませんが、本番環境でサーバーレス PHP を実行している人が増えていることを知っているので、注目する価値があることは間違いありません。

tpyoに気づきましたか? PR を送信して修正することができます。 このブログの最新情報を知りたい場合は、私をフォローしてください。 ツイッター または私のニュースレターを購読してください:

# 楽しみにしている

では、今年はどうでしょうか。 私は静的分析がどこへ向かうのか楽しみにしています。特に PhpStorm とのより良い統合に興味があります。 リアルタイムの静的解析 — コード内の静的解析 その間 あなたがそれを書いているのです — 開発段階自体ではるかに多くの価値を提供します.

ニキータが辞任したので、少し心配です。 PHP のコアに取り組むことができるのは彼だけではありませんが、 やりました ここ数年、PHP 8.0 と 8.1 で膨大な量の作業が行われました。 PHP Foundation がすぐに機能を開始し、来年は PHP に取り組む時間のあるコア開発者が十分にいることを願っています。 PHP 8.2 は、まだ多くの RFC の草案が作成されていませんが、すでに開発中です。

2022年がPHPにとって最も衝撃的な年になるとは思いませんが、むしろ安定性を追加する年になるでしょう. それは何も悪いことではありません。


これらは、2021 年に私が個人的に最も目立ったものであり、2022 年の PHP に興奮するものでした: 素晴らしい新しい構文、PHP Foundation によるコア開発の安定性、静的解析の強化と改善、そして多くのコミュニティ全体での興味深い展開。

あなたが最も興奮していることは何ですか? 教えて ツイッター または電子メールで。 あなたの考えを聞きたいです!

//platform.twitter.com/widgets.js

関連記事

前の投稿
計画方法-stitcher.io
次の投稿
コロラド州の9つの在来植物