0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPが今も使われているくらい隆盛したのはWordPressの存在が大きいのでしょうか?

Last updated at Posted at 2025-09-02
本記事は別サイトで勝手に連載していた自分の記事をお引越ししてきたものです。
少し情報が古いものもありますが、読み物程度にどうぞ。

その通りだと思います。

とはいえ、WordPressがPHPを選んだのにも理由があります。 PHPと同じく「ひたすら実用的である」ということです。

main-qimg-b567af153f53019b4e06659bf295a7c3.jpg
PHP「…万年モブの私に何か?」(画像は Bing Image Creatorで生成)

実用的なものは使いやすいだけでなく、バグが少なく安定していることが非常に重要です。安心して長く使えることを第一に求められるからです。PHPには長い歴史とその中で築いてきた信頼があり、WordPressも同じく20年以上の長い時間をかけて信頼を築いてきました。

一時期数多くのCMSが他の言語からも次々出てましたが、今では世界のWebサイト全体のうち40%以上がWordPressという完全な独占市場になりました

実用的で安定していることを証明するには長い時間がかかるので、ここまで圧倒的なシェアを握られてしまうと後発の言語やソフトはどう頑張っても対抗できません。世の中のWebサイト全体の75%というとんでもないシェアを持つPHPも同様です(2024年末)。これでも最盛期の80%よりは下がったんですけどね。ついでに言えば「CMS」と呼ばれるWordPressのようなWebサイト管理システムの上位3位までは全てPHP製です。

また、最近のPHPはバージョン8.0で爆速になりました。あまりに速くなったので、私も当時管理していたクライアント向けの負荷分散用Webサーバーを数台減らしたほどです。着実なバージョンアップと改善を続ける限り、PHPが簡単に現在の地位から滑り落ちる事はないでしょう。

なお、言語としてシンプルな設計で知られるPHPですが、実は20年も前から継承、トレイト、名前空間などフル機能のオブジェクト指向をサポートする大規模開発向けの言語でもあります。だからこそWordPressのような超巨大システムにも古くから好んで使用されてきました。

現在も流行りの型制約や、名前付きパラメータ、様々なシュガーシンタックス(省略記法)など、PHPはこまめなバージョンアップにより最新のトレンドもしっかり押さえた先進的な言語でもあります。特に8.0から導入された、「コンストラクタの引数でクラスのメンバ宣言もできる」省略記法が衝撃的に便利です。Web開発言語としては最長老級のプログラミング言語とは思えないモダンさですね。

最近のPHPの書き方詰め合わせ(8以降)↓

/** サンプルクラス */
class HogeClass
{
  /* 不要↓
  private $ServiceClass;
  public $OtherClass;
  */

  /** コンストラクタ */
  public function __construct(
    private ServiceClass $ServiceClass, // ここでメンバ宣言ができる
    public OtherClass $OtherClass, // パラメータの最後に,が付けられる
  ) {
    /* 不要↓
    $this->ServiceClass = $ServiceClass;
    $this->OtherClass = $OtherClass;
    */
  }
}

/** 関数 */
function hoge (
  string|null $prm1="hogehoge", // パラメータの複数型制約
  int $prm2=2, // パラメータ宣言の末尾に,が付けられる
) : bool|string // 戻り値の型制約(複数もOK)
{
  $list = []; // array()は20年以上前の記法ですが今も使えます。そういうとこだぞPHP

  $str = <<< SQL
    SELECT * FROM hoge_table
    WHERE id = 1
  SQL; // 地味ですがヒアドキュメントの終端IDが字下げできるようになりました

  $ret = match($prm1) {
    Fire => 0,
    Water => 1,
    default => NULL,
  } // match式もありますよ

  return true;
}

hoge( prm2:4 ); // パラメータを名前で指定できる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?