😎

2024年のPHP利用動向調査(超バイアス版)

2024/12/22に公開

おつかれさまです @sotarok です。

今年、↑みたいなことをつぶやいて、アンケートを取りました。
ほんで、すでに2024年がいなくなろうとしています。はやいね!!

というわけで、アンケートを取った結果をまとめていって、一旦2024年はこうだったね、ということにしたいと思います。

アンケートの概要

アンケート本体はこちらです → 2024年のPHP利用動向調査

今からの回答はもう集計するつもりがないのですが閉じちゃうと質問項目が表示できなくなる (多分) ので、フォーム自体は開いておきます。

概要

パーフェクトPHPの改訂版を書くに当たり、最近PHPを現役で使っているみなさんは、PHPをどのような使い方をしているの?というリアルな情報を集めたく、アンケートを作成させていただきました。
回答内容は、執筆活動の参考にさせていただく場合もあるし、結果的に書かないという結論になる可能性もあります。

見ての通り、書くにあたり、と言ってるが書くとは言っていないのですが、みんなが回答してくれたので、この結果を集計したものをきちんとアウトプットしておく、ということはやっていきたいとおもいます。
それでは、見ていきましょう。

対象者 (超バイアス版とはなにか) と回答者数

まず、そもそもどのような方を対象としたか、ですが、

  • インターネット上にオープンではあるが @sotarok のツイートから巡りついた人
  • 対象者を「現在も、PHPを利用している」人に限定しているため、PHP愛がすごい

という感じになっています。

1つ目ですが、某Xのツイートでしか宣伝していないので、そもそも自分の知り合い(特にITエンジニアのうちスタートアップ周辺に属し、PHPを結構昔から利用していた人を含むエンジニア群)が多い、という感じになっています。

ただし、アンケートは時間とともに全然しらないところまで拡散が及んだ感じもしていて、後半になるにつれて回答内容的に全然違う業界にも届いてる雰囲気はしました (なんとなく)

で、2つ目ですが、まず 問1 で、PHPを利用している人に限定しているので、

それ以外の人の目線はほとんど入っていないでしょう多分、みんなが正直なら。

回答数は171件でした。
メアドユニークにさせていただいているので、一応、わざわざ別メアドで再回答しているケースがなければ、基本的には171UUと考えて良いと思います。

質問項目は以下の通り

  • Q1. 現在も、PHPを利用している
  • Q2. どのようなプロジェクトで利用していますか?
  • Q3. どのようなフェーズのプロジェクトへの採用ですか?
  • Q3-1. 新規プロジェクトで採用している人への質問です: 採用理由はなんですか?
  • Q3-2. 既存プロジェクトで採用している人への質問です: 今後新しいプロジェクトがあったときにもPHPを選択しますか?
  • Q3-2-1. 上記Q3-2で「する」を選択した方は理由を教えて下さい
  • Q3-2-2. 上記Q3-2で「しない」を選択した方は理由を教えて下さい
  • Q4. フレームワーク等を利用していますか?
  • Q5. PHPの使い方で当てはまるものを教えて下さい
  • Q6. PHPのプロダクションの実行環境で近いものを教えて下さい
  • Q7. PHPのローカルでの開発環境は?
  • Q7. 主に利用しているPHPバージョンは?
  • Q8. オススメのPHP書籍があったら教えて下さい
  • Q9. もし回答内容に関して追加で話し聞いて見たい場合に、頂いたメールアドレス宛に連絡をとっても...?
  • Q10. パーフェクトPHPや @sotarok に対して何かしら言いたいことがあったらお願いします

Q1. 現在も、PHPを利用している

はい。

Q2. どのようなプロジェクトで利用していますか?

複数選択可です。

PHP、受託開発案件で結構根強く生き残ってるイメージがあったんですが、自社開発のほうがマジョリティというのは意外でした。
(まあちょっとバイアスがなせる技かもしれません)

教育で使ってる、というのはなるほど。

Q3. どのようなフェーズのプロジェクトへの採用ですか?

複数選択可です。

既存プロジェクトで使っている人が90%いるのは、結構納得感がありますが、新規案件での採用も60%を超えていて、興味深いです。

Q3-1. 新規プロジェクトで採用している人への質問です: 採用理由はなんですか?

選択項目はこちら(複数選択可):

  • プロジェクトの特徴としてPHPが最適だから
  • 社内のスキルセット・ノウハウが活かせる、あるいは他の言語や環境を選択できるスキルセットがないから
  • 社内のライブラリ等の資産を活かせるから
  • 自社以外からの(コントロール不可能な力による)指定
  • PHPが好きだから
  • なんとなく
  • その他

やはり社内のノウハウの活かす (後ろ向きな理由も含む) ところが一番つよく 73.3% でした。

次点で 「PHPが好きだから」が42% 。愛だな、愛!

プロジェクトの特徴として最適(34.7%)、というのは、WordPress とかだとわかりやすいかな、とおもって書いた質問ですが、例えば重たいサーバー側の処理が少なくフロントエンドンもリッチである必要がないというプロジェクトにおいては、DBとシュッと繋いでシュッと画面を出す、みたいなものは使いやすいのかと思います。

その他では、N=1 の回答も結構いただいていたのですが、大まかにまとめると、

  • 採用のため(使ってる人が多い)
  • 安いレンサバで動くから
  • 長年使ってきた・いつも使ってるから・立ち上がりが早い (ノウハウを活用しやすい、に近いと思う)

などが色々ありました。

Q3-2. 既存プロジェクトで採用している人への質問です: 今後新しいプロジェクトがあったときにもPHPを選択しますか?

これは個人的には意外という印象もありますが、はいが 83% です。

好きだか、の人が42%いるんで、まあなんかそれはそれでわかる。

Q3-2-1. 上記Q3-2で「する」を選択した方は理由を教えて下さい

選択肢は:

  • プロジェクトの特徴としてPHPが最適ならばする
  • 社内のスキルセット・ノウハウが活かせる、あるいは他の言語や環境を選択できるスキルセットがないから
  • 社内のライブラリ等の資産を活かせるから
  • 付き合いのあるクライアントから指定される可能性が高い
  • PHPが好きだから
  • なんとなく
  • その他

やはり、既存リソースの活用がトップで 69.1%、次点でプロジェクトの特徴として最適なら、という技術選定観点ですかね。

好きだからはここでも 48%。好きだなおまいら!

Q3-2-2. 上記Q3-2で「しない」を選択した方は理由を教えて下さい

自由記述です。回答者が特定できないようにある程度内容をまるめて引用します。

  • PHPが嫌いだから
  • 今ならJS (TS) がいいかなぁ
  • goとかもやってみたい
  • 他の言語のほうが、慣れた人がいる、社内でPHPerが少数派
  • 個人開発であれば新しいものを試したい。
  • 自分に権限がない・会社の方針
  • 採用面でPHPが弱い
  • 自分の専門が他の言語 (でもPHPは嫌いではない)

などなど結構たくさん記述していただきました。まあ、どれもなるほどね、という感じの内容ではあります。
個人的な気持ちとして、他の言語にチャレンジしたい、といった理由や、採用や会社都合の理由など、様々ではありますが、

言語レベルではなく要件を詰めていって、何が必要かを考え、クラウドでどう組むか決め、そこでようやく何使うかの話になるのが自然かなと思うので、phpになるかは不明。

これは至極真っ当な回答だと思います。

Q4. フレームワーク等を利用していますか?

選択肢はこちら:

  • Laravel
  • Symfony
  • CakePHP
  • CodeIgniter
  • Laminas
  • WordPress
  • オレオレフレームワーク(自作)
  • その他

こちらは、N=1 でも匿名性は大丈夫そうなのでいったん全部貼っちゃいます。
オレオレフレームワークと社内フレームワークはまあ同じかな、と思ったけどそういう言い方にすればよかったかもしれない。
Drupalは選択肢に含めるべきでしたね、、デジ庁でも採用されてました。

自体は圧倒的Laravel、生Symfony、CakePHP、社内(オレオレ)フレームワーク、あたりは環境としてイーブン、WordPress はやっぱり強いかな、と思いました。EC-CUBEはバージョンにもよりますがその実 Symfony かもしれません。

mojaviってマ? 2024年だよ!!

真面目な話セキュリティ的なアレもあるのでZF1系やmojaviなどは移行したいですよね...
まあ現実問題ってのはあるんですが。

Q5. PHPの使い方で当てはまるものを教えて下さい

複数選択可で、選択肢はこちら

  • 従来のPHPの機能通り、HTTPリクエストを受け何かしらのロジックを走らせHTMLを返す
  • HTMLは返すがブラウザ上の動的な処理のためにReact等のフロントエンド技術も組み合わせて使う
  • ネイティブアプリやJSフロントエンドに対してJSONを返すなどAPIサーバーとして振る舞う
  • CLI SAPI で実行している (バッチ処理やAWS Lambdaのようなサーバーレス環境)
  • WordPressのようなエンジンをカスタマイズして使っている
  • その他

SSR (という表現は、PHP全盛期には当たり前だったのでなかった言い方なんだけど、まあようするにSSR) が 2024年でも 77% というのは、ちょっと意外でした。
ただ、同じくらいの勢いで、フロントエンドやネイティブのバックエンドとして動いている、という使い方もしている人がイますね。

あとはHTMLを返しつつも、やはり動的なフロントエンド技術と組み合わせて使っている人たちもいます。みなさんハイドレーションどうしているんでしょうか。
(ちなみにCrowiはハイドレーションしたい内容をJSONでHTML上に埋め込んで、クライアントサイドでそれを復元するような形にしていました)

Q6. PHPのプロダクションの実行環境で近いものを教えて下さい

選択肢はこちら:

  • オンプレまたはAWS EC2のようなサーバーインスタンスにphp-fpm + nginxのようなreverse proxy
  • オンプレまたはAWS EC2のようなサーバーインスタンスにApache + mod_php
  • コンテナ内でphp-fpmを起動してる (フロントはnginxなど)
  • コンテナ内でApche + mod_phpを起動してる
  • AWS Lambdaのようなサーバーレス実行環境
  • その他

コレは結構面白い結果になったんじゃないかな、と思うのですが、大コンテナ時代にはなってますが、素のサーバーで php-fpm or mod_php のような環境で本番環境を動かしている人たちも並ぶくらいいるというイメージです。

コンテナ環境では、mod_php と php-fpm が 42:70 なんですが、個人的にはコンテナ環境としては mod_php のほうが良くない?と思っているところはあります。
php-fpm はあくまで fcgi process として proxy サーバーと同一サーバー内で動く環境コンテナを前提に環境を構築するとコンテナ=プロセスのように扱われるので、PHPの実行環境とサーバープロセスが一体化したApacheのほうがオーバーヘッドが少ないのでは、という観点なんですが、どうなんでしょうか。シンプルに管理するコンテナを1つ減らせると嬉しい、という話なんですが。

閑話休題。

その他、一般的なレンタルサーバーで使ってます、frankenつかってます、という方がいました。
franken知らなかったです、すいません...! フランケンelePHPanat、かわいいじゃないですか。

Q7. PHPのローカルでの開発環境は?

選択肢:

  • 直接PHP (ついでにApacheなど) をインストールしてる (Homebrew等で入れてるケースもこれ)
  • VirtualBoxのような仮想環境を立ち上げて利用
  • Dockerコンテナを立ち上げて利用
  • XAMPP (のような、一発環境インストール系)
  • その他

Docker が多数派ではありますが、その場合、fpm + nginx のコンテナを用意してるかんじなんでしょうか? (やっぱ Apache のほうが (r

「ローカルなどない」は remote container とかでしょうか。
え、本番で直接開発してる...!? あ、ローカルではない開発用のサーバーがあるイメージですかね。

Q7. 主に利用しているPHPバージョンは?

選択肢:

  • 8.3
  • 8.2
  • 8.1 (もうすぐEOLですよ〜)
  • 8.0 (EOL 済みです)
  • 7系 (EOL 済みですよ〜〜)
  • 5.4 (パーフェクトPHPのサポートバージョンはこれです😇)
  • Nightly build
  • その他

いや、すいません、アンケート次点で 8.4 がリリース前だったので...
いや本当にこういう、賞味期限のあるものは記事をすぐ書け、ってかんじですよね。

みんな結構ちゃんと8系使ってて偉いです。
5系やばいです!
5.4 はネタでいれたんだけどなんでそんなにいるんだよw

まあでもメンテナンス上、そこに工数かけられないとか、そういう事情があるのはわかります。
わかりますが、ダメですよ!

Nigtly Build は1名だけでした。

Q8. オススメのPHP書籍があったら教えて下さい

任意回答で、回答数は 34 でした。手集計したものがこちら↓

  • ない、なくてこまってる、あったらおしえて 6
  • パーフェクトPHP 5
  • 公式サイトのPHPマニュアル 4
  • ちょうぜつソフトウェア設計入門 3
  • PHPエンジニア養成読本 (構成はいいけど内容はもはやレガシーだなって参考に)
  • オブジェクト設計スタイルガイド
  • 体系的に学ぶ 安全なWebアプリケーションの作り方 第2版
  • オライリーの詳解WordPress
  • PHPフレームワーク Laravel Webアプリケーション開発 バージョン8.x対応
  • PHP逆引きレシピ
  • swoole
  • mpywさんの書いたqiita,zennの記事
  • 独習PHP
  • 気づけばプロ並みPHP 改訂版
  • PHPポケットリファレンス

いやごめんて、ごめんて...

ちなみに、

  • レベル別に:
    • 初学者向け:「PHPふりがなプログラミング」
    • 中級者を目指すにあたって: パーフェクトPHP、ちょうぜつ本、オブジェクト設計スタイルガイド、Domain-Driven Design in PHP

という回答もありました。めちゃくちゃちゃんとしてる。

ちょうぜつ本、人気ですね。

12月次点では、入門本としてめもりーさんの「PHPでプログラミング入門」が候補に入ってくるかもしれませんね。先日ご献本いただきましたので紹介させていただきます!

Q9. もし回答内容に関して追加で話し聞いて見たい場合に、頂いたメールアドレス宛に連絡をとっても...?

みんなやさしいです

Q10. パーフェクトPHPや @sotarok に対して何かしら言いたいことがあったらお願いします

めちゃくちゃ叱咤激励いただきました。
ありがとうございます。

お手伝いします、とか、こういう内容がいいな、みたいなところまで、非常に沢山のコメントをいただきました。(なんと57件、1/3の方がフリーコメント書いてくれてます)

応援メッセージはありがたくいただくとして、
他の方にも参考になりそうなものをいくつか紹介させてください:

本に書かれるべき内容について言及してくださってる方々:

PHPの型について、型定義の書き方(関数の引数で定義したりphpdocで定義したりその中でphpstanの場合にだけ形をつけるなど)をプロジェクトの参加者に説明することが多いので型周りについては多くの情報と動向を書いた本があると良いかもしれないなと思っていました。静的解析機は拡張を書くことで既存のプロジェクトでもきちんと型をつけることができるので仕組みと拡張の方法についてもPHPの今後の動向の一部としてでも紹介してもよさそうです

今はかなり古く、現代に置き換えたらどのくらい内容が「圧縮」されるのかなというところが興味があります
実際PHP7系より型が導入されてから、相当会話の量が圧縮されたような勘所があるので、これまでのパーフェクトPHPよりもある程度ページ数が減るのかもしれない? など思ったりした次第です

  • シェアードナッシングは超ポータブルでいいぞ
  • だからこそPHPの共有メモリとしてRedisですよ
  • 愚直だからIntelliJとCopilotがよく働いてくれる
    ここらへんの嬉しさが伝わってくる本になったら素敵だなあと思います

PHPの中級、上級者向けの書籍があまりないため、書いていただけると嬉しいです…!
また、現在参画しているPJがかなりスピード感持って開発したため、事業成長とともにかなり負債が溜まっています。そのため、「達人が教えるWebパフォーマンスチューニング」のようなアプリチューニングに焦点を当てたものや、その上でテストコードの導入していくには…などについて書かれた書籍があればとても嬉しいです!(買います)

PHP界隈の感心が(カンファレンスをみていると)「PHPかどうかではなく、設計」「Laravelにあらずんば、PHPオタク」になりつつあり、出版社は(発行部数的に)「初心者向けを!」といいますし、執筆依頼がきても「そういう基本を本で読む必要ある??そこはパーフェクトPHPのころから変わらないけど?」みたいな主観もあり、なかなかむずかしいなと想って生きています。

コンテナ + PHPの情報があまりない気がしています
php.iniやphp-fpm.confなども、OpCacheの設定にオンプレ前提な説明しかないような

PHP8以降のモダンなコードでの解説やcomposerを利用した開発、PHPStanを用いた型制約なども盛り込んだ内容を期待しています!!!!

近年のPHPの進化の一部は、静的型付け言語の良さをいい感じに取り込んでる雰囲気があり、サーバサイドの言語としては積極的にPHPを推せる状態です。(以前は消極的かつ最低限に使っていました)
新版を出される際には、近年のPHPの進化についてもまとまった章(?)があると最高だなって思います!
(補足)PHPのバージョンは、うちでは、UbuntuのLTS版に入ってるものを採用しています。もうすぐ24.04が出ますので、これからの新規プロジェクトはPHP8.3採用になります!

コンテナでの活用や並列処理などの実践的な内容が知りたい

PHPの型について、型定義の書き方(関数の引数で定義したりphpdocで定義したりその中でphpstanの場合にだけ形をつけるなど)をプロジェクトの参加者に説明することが多いので型周りについては多くの情報と動向を書いた本があると良いかもしれないなと思っていました。静的解析機は拡張を書くことで既存のプロジェクトでもきちんと型をつけることができるので仕組みと拡張の方法についてもPHPの今後の動向の一部としてでも紹介してもよさそうです

時代が変わりすぎて、若手の方からは「きいたことある」レベルになりつつあります:

読んだことある人からめちゃくちゃ良本と聞きました
改訂版が出るならそちらを是非買って読んでみたいです

パーフェクトPHPが古そうであまり読んでませんでした…🙏網羅的に読めるのはとても嬉しいのと、今の言語機能だけでなくどう進化してきたかなども知れると嬉しいです

はい、本当にそうです...

その他メッセージ:

P2B、また行きます!

ありがとうございます!🍻

まとめ

生の声を色々いただき、非常に参考になりました。

ご回答いただいたみなさま、ありがとうございました!!

あと、本当はこれ phpcon で LT でもやろうとおもってたんですが、申し込み忘れちゃったんで、phpcon会場で書きました。

で、書くの?

  • 書きたい気持ちは更に高まりました!!
    • ちなみに、ずっとあります
  • 現実的にどうなったら書くのか?
    • 自社のプロダクトもうちょっとちゃんと立ち上がったら
    • ビール屋さんのオペレーションもうちょっと落ち着いたら... あと売上

そんなかんじで、2025年も頑張っていきたいと思います!!

Discussion