(jp) =
90 年代半ばに個人プロジェクトとしてささやかな始まりから、PHP は Web 開発で最も人気のある言語の 1 つに成長し、小さなブログから大規模なエンタープライズ アプリケーションまであらゆるものを支えています。
それは、ほぼ 30 年の間に驚くべき変化を遂げた言語です。 過去 10 年間でさえ、PHP は私たちが想像もできなかった方法で変化しました。
毎年、過去と未来を振り返る、PHP の現状に関する記事を書いています。 さぁ、始めよう!
<!–

–>
# PHP 財団
通常、これらの投稿は最新の PHP バージョンの概要から始めますが、今回は最初に PHP Foundation に焦点を当てたいと思います。 財団が設立されてから 1 年余りが経ちました。10 人のボランティアと 6 人の開発者からなる集合体が、言語である PHP に取り組むために報酬を受けています。
昨年、私は次のように書きました。
ニキータが辞任したので、少し心配です。 PHP のコアに取り組むことができるのは彼だけではありませんが、 やりました ここ数年、PHP 8.0 と 8.1 で膨大な量の作業が行われました。 PHP Foundation がすぐに機能を開始し、来年は PHP に取り組む時間のあるコア開発者が十分にいることを願っています。 PHP 8.2 は、まだ多くの RFC の草案が作成されていませんが、すでに開発中です。
2022年がPHPにとって最も衝撃的な年になるとは思いませんが、むしろ安定性を追加する年になるでしょう. それは何も悪いことではありません。
財団が成果を上げたと言っても過言ではないと思います。 彼らは最近 2022 年のレポートを公開しましたが、かなり印象的な数字がいくつか示されています。
- 合計で、 $580,000 2022年に引き上げられました
- 財団が支払う 6人の開発者 PHPで作業する
- 財団メンバーが作った 全コミットのほぼ半分 php-srcで
- 彼らが制作した 8 つの新しい RFC、それらの RFC の 1 つだけが成功しませんでした
Foundation は、長い間 PHP に起こった最高の出来事の 1 つだと思います。2023 年にはさらに言語を改善できることを願っています。PHP を使用している会社で働いている場合は、寄付を検討することを強くお勧めします。
# PHP 8.2
PHP 8.2 に移行します。 一般的には小規模なリリースと見なされていますが、それでも多くの優れた機能があります。 カップルに名前を付けるだけです:
読み取り専用クラス:
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、 true と false:
function alwaysFalse(): false
return false;
選言正規形タイプ:
function generateSlug((HasTitle&HasId)|null $post)
編集されたパラメータ:
function connect(
string $user,
#[\SensitiveParameter] string $password
)
もっと。
何年にもわたって PHP がどれだけ進化してきたかを理解するのはちょっとクレイジーです。 違いを明確に示す小さなビデオ比較を行いました。
# エコシステム
毎年のように、PHP のパッケージ マネージャーである Packagist について言及する必要があります。現在、361,000 個のパッケージがリストされています。 昨年より60,000人多い:

印象的な数字の 1 つは、インストールの合計数です。 昨年、私はこれについて次のように述べました。
ところで、つい最近、Packagist は 500 億以上のインストールを処理するというマイルストーンを通過しました。 おめでとうございます。
確認したところ、現在 74,492,061,634 インストール. これは 1 年間で 240 億のインストール数の増加です。 1 か月あたり 20 億回のインストール. つまり、PHP エコシステムは大きく成長しています。
年に 2 回、バージョン統計の投稿を公開します。 これらの投稿では、Packagist のデータに基づいて、コミュニティ全体での PHP バージョンの使用状況を分析しています。 その投稿のグラフをもう一度共有したいと思います。2013 年から現在までのタイムラインで、バージョンごとの使用履歴を示しています。
PHP 8.* の使用が急激に増加するのは素晴らしいことですが、 多くの人がまだ古い、遅くて安全でない PHP バージョンに固執している. 2023 年の私の希望は、これらの古いバージョン番号がさらに急速に減少することです。 バージョン統計の投稿で次のように書きました。
このデータは、PHP コミュニティ内の分裂を見事に視覚化しています。ある部分は最新の PHP に遅れずについていく一方で、別の部分はどうすることもできず遅れをとっています。
アップグレードといえば、特に 1 つのツール、Rector について言及したいと思います。 Rector は、PHP コードベースのアップグレードに役立つ無料の自動化ツールです。 ごくわずかな設定を行うだけで、膨大な量の作業が行われます。
私は最近、コミュニティ主導のコンテンツ アグリゲータである Aggregate を PHP 8.2 に更新するために使用しましたが、非常に楽しく使いやすいものでした。
私のバージョン統計の投稿を公開した後、何人かの人々が、まだ更新しておらず、PHP 7.* で行き詰まっていると言ったとき、私はその理由を彼らに尋ねました。 彼らは、単純に手作業が多すぎると私に言いました。 興味深いことに、レクターのようなツールを使って彼らを助けようとした人は誰もいませんでした…
私は、「プログラミング言語」はコンパイラー以上のものであると固く信じています。その「プログラミング言語」を定義する上で同等の役割を果たすのは、ツールとエコシステムです。 Rector などの自動化ツールの使用を検討しました。
エコシステムについて話しているので、PHP の 2 つの最大のフレームワークである Laravel と Symfony について言及せずにはいられません。
過去数年間で、Laravel は驚異的な成長を遂げました。 彼らは現在、フレームワークとそのエコシステムに取り組むために 8 人のフルタイムの開発者を雇用しています。 その上、JetBrains の開発者調査によると、 PHP 開発者の 67% が Laravel を使用しています.
フレームワークとしての Symfony は、最近では Laravel に比べてあまり人気がないかもしれませんが、それでも PHP コミュニティー内で最も成熟した安定したフレームワークの 1 つです。 エンタープライズ アプリケーションの開発によく使用されますが、そのスタンドアロン コンポーネントは PHP エコシステム全体で人気があります。Laravel には、Symfony コンポーネントへの依存関係もいくつかあります。 一握り以上の Symfony パッケージが Packagist のトップ パッケージ リストに入っていることは驚くことではありません。
WordPressについても言及する必要があります。 正直なところ、私はそれと愛憎関係にあります。 ユーザーとして、WordPress は素晴らしいです。 インストールと使用はとても簡単で、長年にわたってあらゆる点で人気を博していると思います. しかし、開発者として、WordPress は私を悲しくさせます。 最新の安全な PHP バージョンを最新の状態に保つことができないことは、PHP コミュニティ全体に影を落としています。
現在、WordPress は PHP 8.0 のベータ版のみをサポートしています。 はっきりさせておきますが、PHP 8.0 は 2020 年にリリースされ、3 年後にはサポートが終了しています。WordPress はまだサポートしていません。
もちろん、新しい PHP バージョンを適切にサポートしないのには理由があります。 それらが良いかどうかはあなた次第です。 私の個人的な意見では、WordPress と同じように後方互換性を保持するという決定は、ほとんどビジネス主導です。WordPress の大部分は商用部分であり、顧客ベースの大部分は古い PHP バージョンを実行しています。 これは、両当事者が互いに抑制し合い、程度によって PHP コミュニティ全体を抑制しているという悪循環です。
一方で、20年近く経ってもWordPressほどの人気と関連性を維持できるソフトウェアプロジェクトは多くないという事実を認識する必要があるため、後方互換性に関する彼らの戦略は正しいものでしょうか?
# スーパーセット
最後に、PHP に対する私の長年の夢について言及せずにはいられません。 私はそれについて書き、話し、いつの日かそれが実現することを願っています: PHP のスーパーセット、 と 適切な IDE と静的アナライザーのサポート。
私がそれを実現したい理由はたくさんあります。 しかし、それが現実になることを心から願っています。 2023 年に広く受け入れられ、サポートされているスーパーセットが登場するかどうかは疑問ですが、いくつかの小さなステップはすでに行われています。 私は間違いなく、物事を正しい方向に導く可能性のある PXP を注視しています。
それでは、2023年もよろしくお願いします! 私は、JetBrains の開発者アドボケイトである Brent です。PHP について執筆し、ブログを書いています。 私が最近取り組んでいる YouTube チャンネルをチェックしていただければ幸いです。 ご覧になって、購読を検討してみてはいかがでしょうか。 ありがとう!
ビデオに興味はないが、それでも私をフォローしたい場合は、代わりに 15,000 人のニュースレター購読者に参加できます。そこでお会いしましょう!
//platform.twitter.com/widgets.js