はじめに: 1990 年代半ばに個人プロジェクトとして始まった PHP は、最も人気のある Web 開発言語の 1 つに成長し、小規模な言語や小規模な言語で利用できるようになりました。中規模の開発者ブログから大規模なエンタープライズ アプリケーションまであらゆるものをサポートします。
PHP この言語は、過去 30 年間に驚くべき変更を繰り返してきました。過去 10 年間で、PHP は私たちが想像もできなかった方法で変化しました。
私は毎年新年に、PHP の現状を振り返り、将来を展望する記事を書きます。今すぐ始めましょう!
PHP Foundation
以前は、通常、最新の PHP バージョンの概要から始めていました。ただし、今回はまず PHP Foundation に焦点を当てたいと思います。
PHP Foundation が設立されてから 1 年以上が経過しました。この財団は 10 人のボランティアと 6 人の開発者のチームで構成されています。 PHP言語。
昨年、私は次のように書きました:
ニキータ (カーネル開発者) が去った今、私は少し心配しています。しかし、コア PHP で作業できるのは彼だけではありません。彼は過去数年間、PHP 8.0 および 8.1 で多くの作業を行ってきました。
PHP Foundation がすぐに追いつき、来年中に十分な数のコア開発者が自由に PHP に取り組むことができるようになることを願っています。
PHP 8.2 はすでに開発中ですが、まだ多くの RFC が草案されていません。
2022 年は PHP にとって最もエキサイティングな年ではなく、むしろ安定性が高まる年になると考えるのは間違いではありません。
PHP Foundation は現在、適切に機能していると言っても過言ではないと思います。彼らは最近 2022 年のレポートを発表しました。これには非常に印象的な数字が示されています:
$580,000 が 2022 年に集まりました
Foundation 6 の開発者には報酬が支払われますPHP コアの作業のために
財団メンバーは php-src のコミットのほぼ半分を完了しました
彼らは 8 つの新しい RFC を作成しましたが、そのうちの 1 つだけでした
PHP Foundation は、PHP に起こった最高の出来事の 1 つだと思います。 2023 年には言語がさらに改善されることを願っています。 PHP を使用している会社で働いている場合は、寄付を検討することを強くお勧めします。
PHP 8.2
PHP 8.2 の使用について話しましょう。開発者によっては小さいバージョンとみなされることがよくありますが、実際には優れた機能がたくさんあります。
ここにいくつかの例があります:
ReadOnly クラス (ReadOnly):
readonly class PostData { public function __construct( public string $title, public string $author, public string $body, public DateTimeImmutable $createdAt, public PostState $state, ) {} }
新しいランダム ジェネレーター:
$rng = $is_production ? new Random\Engine\Secure() : new Random\Engine\Mt19937(1234); $randomizer = new Random\Randomizer($rng); $randomizer->shuffleString('foobar');
null に依存しない真と偽:
function alwaysFalse(): false { return false; }
選言正規形タイプ:
function generateSlug((HasTitle&HasId)|null $post) { /* … */ } 编辑参数: function connect( string $user, #[\SensitiveParameter] string $password ) { // … }
もちろん、調べてみる価値のあるものは他にもあります。
PHP が長年にわたりどれほど驚異的な成長を遂げてきたかを考えてみましょう。いくつかの比較を行ったところ、違いは以下に明確に示されています:
エコシステム
毎年のように、PHP のパッケージ マネージャーである Packagist について触れておきます。今年は、昨年より 60,000 個多い 361,000 個のパッケージがリストされています。
##最も印象的な数字は、インストールの合計金額です。この量については昨年言及しました:さて、ところで、最近、Packagist は 500 億を超えるインストールを処理するというマイルストーンを突破しました。パッケージニストさん、おめでとうございます!先ほど確認したところ、Packagist の現在のインストール量は 74,492,061,634 回です。これは、1 年間で 240 億インストール、月間インストール数が 20 億に相当します。要約すると、PHP エコシステムは急速に成長しています。 年に 2 回、バージョン統計を公開します。これらの投稿では、Packagist からのデータに基づいて、コミュニティ全体での PHP バージョンの使用状況を分析します。 その投稿のグラフをもう一度共有したいと思います。2013 年から現在までのタイムラインで、各バージョンの使用履歴を示しています。 PHP 8.* の使用が急激に増加しているのは喜ばしいことですが、多くの人は依然として、遅くて安全でない古いバージョンの PHP を使い続けています。 。 2023 年の私の希望は、これらの古いバージョン番号がこれよりも早く減少することです。これは、上記のバージョン統計の投稿に書いたことです:
このデータは、PHP コミュニティ内の分裂を見事に視覚化しています。ある部分は最新の PHP と歩調を合わせている一方で、他の部分はどうしようもなく取り残されています。
アップグレードに関しては、特に 1 つのツールについて言及したいと思います。それは、Rector です。
Rector は、PHP コード ベースのアップグレードに役立つ無料の自動化ツールです。必要なのは少量の設定だけで、多くの作業を自動的に実行します。
最近、コミュニティ主導のコンテンツ アグリゲーターである Aggregate を PHP 8.2 に更新するためにこれを使用しましたが、本当に楽しくて使いやすかったです。
私のバージョン統計の投稿を投稿した後、何人かの人が、まだアップデートしておらず、PHP 7.* で行き詰まっていると言いました。その理由を尋ねました。彼らは、肉体労働が多すぎると言いました。興味深いことに、Rector のようなツールを使って自分たちを助けようとする人は誰もいません...
私は、「プログラミング言語」は単なるコンパイラーではないと強く信じています。「プログラミング言語」は、「プログラミング言語」を定義する上で同等の役割を果たします。 「言語」ツールとエコシステムについては、Rector のような自動化ツールの使用を検討すれば、多くの人、プロジェクト、企業が恩恵を受けるだろうと私は本当に思います。
エコシステムについて話しているので、PHP の 2 つの最大のフレームワークである Laravel と Symfony について触れずにはいられません。
Laravel はここ数年で大きく成長しました。同社は現在、フレームワークとそのエコシステムを開発するために 8 名のフルタイム開発者を雇用しています。さらに、JetBrains の開発調査では、PHP 開発者の 67% が Laravel を使用していると報告しています。
Symfony は、Laravel に比べてフレームワークとしてはあまり人気がありませんが、それでも PHP コミュニティで最も成熟し、安定したフレームワークの 1 つです。 Laravel はエンタープライズ アプリケーション開発によく使用されますが、そのスタンドアロン コンポーネントは PHP エコシステム全体で人気があります。Laravel は Symfony コンポーネントにも依存しているため、多くの Symfony パッケージが Packagist のトップ パッケージ リストに載っているのも不思議ではありません。
WordPress についても触れておきます。正直に言うと、私は WordPress に対して愛憎の感情を抱いています。ユーザーとして、WordPress は素晴らしいです。インストールも使用もとても簡単で、長年にわたり非常に人気を博していると思います。しかし、開発者として、WordPress は悲しくなります。最新の安全な PHP バージョンに対応できないことは、PHP コミュニティ全体に暗雲を投げかけています。
現在、WordPress は PHP 8.0 のベータサポートのみを提供しています。ここで明確にしておきます: PHP 8.0 は 2020 年にリリースされ、3 年後にサポートが終了しました - そして WordPress はまだサポートしていません... もちろん、新しい PHP バージョンを適切にサポートしていないのには理由があり、そうすべきですそれらが正しいかどうかはユーザーが判断します。私の個人的な意見は、WordPress のような下位互換性を主張する決定は主にビジネス主導によるものであるということです。WordPress の大部分は商用部分であり、顧客ベースの大部分は古い PHP バージョンを実行しています。これは悪循環であり、双方が互いに妨げ合い、ある程度までは PHP コミュニティ全体の発展を妨げます。
一方、ほぼ 20 年を経ても、WordPress ほど人気があり関連性のあるソフトウェア プロジェクトは多くないという事実を認識する必要があります。そのため、下位互換性に関する彼らの戦略は正しいのではないでしょうか?
スーパー エピソード最後に、PHP に対する私の長年の夢について触れずにはいられません。
私は今これを書いていますが、いつかそれが現実になることを願っています。それは、適切な IDE と静的アナライザーのサポートを備えた PHP のスーパーセットです。
私がそれが起こることを望む理由はたくさんあります。必要に応じて読んだり聞いたりできますが、それが現実になることを願っています。 2023 年に広く受け入れられサポートされるスーパーセットが登場するまでにはしばらく時間がかかりますが、いくつかの小さなステップはすでに始まっています。私は間違いなく PXP に注目していきます。PXP は物事をより正しい方向に推し進めるでしょう。
要約すると、すべての開発者は 2023 年を気に入ると思います。最後に、初めての方のために付け加えておきますが、私は JetBrains の開発者エバンジェリストの Brent です。
注: 元の英語アドレスは次のとおりです: https://stitcher.io/blog/php-in-2023