PHPは、オープンソースのサーバーサイドスクリプトとプログラミング言語です。主にウェブ開発で使用されます。WordPressのコアソフトウェアの大部分はPHPで記述されているため、WordPressコミュニティにおいては非常に重要な言語です。プログラミング言語としてPHPは時代遅れという声もありますが、これは大きな間違いです。
PHPには、サーバーにインストール可能なさまざまなバージョンがあり、新しいPHP 8.0、8.1、8.2では、以前のバージョンと比較しパフォーマンスが大幅に改善しています。パフォーマンスとセキュリティ向上のため、Kinstaは常に最新バージョンのPHPをサポートしています。
この記事では、サーバーサイドとは何か、そしてPHPの仕組みについて掘り下げます。また、WordPressとそれを使ったサイトにおけるPHPの使われ方も見ていきましょう。
PHPの仕組み
冒頭でPHPがサーバーサイドの言語であることは触れましたが、「サーバーサイド」とは、訪問者のブラウザに何かが表示される前に、すべての処理がウェブサーバー上で行われることを意味します。
例えば、誰かがあるWordPressサイトにアクセスするとします。サーバーは、その訪問者にファイルを配信する前に、WordPressのコアとサイトにインストールしたテーマやプラグインに含まれるPHPコードを実行します。
このコードが処理されると、PHPの出力(訪問者のブラウザが実際に受け取るHTMLコード)が配信される仕組みです。
HTMLとは異なり、WordPressサイトを動かすPHPコードが訪問者の目に触れることはありません。サーバーから送信された、処理済みのコードがブラウザに表示されます。
PHP 5、PHP 7、PHP 8の比較
W3Techsによると、PHPはサーバーサイドプログラミング言語を使用するすウェブサイトの77.4%以上で使用されており、2位のASP.NETのシェア率は7%強にとどまります。
他のプログラミング言語と同様に、PHPのバージョンは様々です。PHP 5、7.0、7.1、7.2、7.3、そして7.4は、セキュリティサポートの終了(EOL)した古いバージョンに分類されます。
PHP 8.0、8.1、8.2では、パフォーマンスとセキュリティが大幅に改善されています。Kinstaでは、独自の自己修復設定により、以下のPHPバージョンをサポートしています。
また、MyKinstaにログインして、対象となるWordPressサイトを選択すれば、ワンクリックでPHPのバージョンを変更することができます。
サイトを選択したら、「ツール」画面に移動して「PHPエンジン」を見つけます。
「変更」をクリックし、ドロップダウンメニューから任意のPHPバージョンを選択すれば完了です。
WordPressでのPHPの使われ方
WordPress.orgからWordPressの最新版をダウンロードし、ZIPファイルを開くと、コアファイルのほとんどがPHPで記述されていることがわかります。
同様に、インストールしたテーマも多くのPHPファイルで構成されています(以下はデフォルトのTwenty Twenty-Oneテーマのファイル一覧)。
以下の通り、プラグインも同様です。
また、WordPressは、コアファイルにPHPを使用しているだけでなく、膨大な数の関数、フック、クラス、メソッドも組み込まれており、WordPressの機能を拡張する術として活用できます。
例えば、よく利用される関数に、the_content();があります。何の変哲もないように見えるかもしれませんが、テーマがブログ記事の内容を表示するという重要な役割を担っています。
ウェブサーバーがPHPコードを処理すると、このスニペットが1万語のブログ記事になることもあります。このように関数、フック、クラス、メソッドがWordPressの柔軟性の大部分を支えています。
WordPressのテーマにおけるPHPの動作例
PHPのサーバーサイドの性質をWordPressサイトと結びつけて、もう少し詳しく見てみましょう。
先ほどのTwenty Twenty-Oneテーマのファイル一覧に戻ります。
上のスクリーンショットで、comments.php、footer.php、header.phpなど、別のPHPファイルがあることがわかります。
すでにWordPressを使用している方なら、このファイル名には馴染みがあるはずです。例えば以下のように、サイトのフロントエンドにある要素がそのままファイル名になっています。
- comments.php─コメント欄の表示と機能を指定
- footer.php─フッターの見た目と機能を指定
- header.php─ヘッダーの外観と機能を指定
誰かがサイトにアクセスするたびに、ウェブサーバーがテーマ内の様々な領域用に分割されたPHPファイルを取得し、テーマの指定通りにファイルをまとめ、完成した状態のHTMLページを訪問者のブラウザに送信します。
PHPフレームワークとは
PHPフレームワークは、PHPベースのアプリケーション開発を効率化する枠組みです。フォームバリデーションやデータサニタイズなど、一般的な機能を実行するのに役立つコードライブラリで構成されます。
コードをゼロから記述する手間が省け、作業がはるかに効率的になるだけでなく、スピードと利便性以外の利点もあります。
PHPフレームワークを使うことで、優れたコーディングプラクティスに準拠できます。以下の例では、Symfonyで関数が異なるディレクトリにきれいに編成されていることがわかります。
加えて、PHPフレームワークは、リファクタリングとDRY(Don’t repeat yourself)の原則を促進します。これによって無駄のないコードが記述でき、メンテナンスが容易になります。さらに、コアフレームワークのメンテナンスについて心配する必要もありません。
さらに、PHPアプリケーションの安全性も確保できます。もちろん、安全なコーディングを心がける必要はありますが、ハッキングの可能性を軽減することが可能です。中には、SQLインジェクションやクロスサイトスクリプティング(XSS)のようなPHPセキュリティの脅威からデータを保護する機能が組み込まれているフレームワークもあります。
おすすめPHPフレームワーク3選
PHPフレームワークを導入するメリットが分かったところで、おすすめフレームワークを3種類ご紹介します。
1. Laravel
Laravelは、クリーンなアーキテクチャとウェブアプリケーションの構築に必要なすべてが揃ったフレームワークです。ユーザー認証、ファイルストレージ、データベースマイグレーションなど、豊富な機能を利用できます。
また、利用開始も非常に簡単で、PHPやウェブサーバー、その他のソフトウェアをシステムにインストールする必要はありません。軽量かつ高速、セキュアな開発環境があらかじめパッケージ化されています。
2. Symfony
Symfonyは、PHPフレームワークとして、そしてウェブサイトを構築するPHPコンポーネントとして機能します。PHPフレームワークの中でも特に柔軟性に優れており、プロジェクトに必要なコンポーネントを正確に選択可能です。
また、Drizzle、MySQL、Oracleを含む多数のデータベースに対応しています。Sensio Labsが商用サポートを提供しているため、他の多くのPHPフレームワークとは異なり、サポートが充実しているのもメリットです。
3.CodeIgniter
CodeIgniterは、最小限の設定ですぐにセットアップ可能な選択肢です。Symfony同様、必要なコンポーネントを追加することができるため、アプリケーションの肥大化を避けることができます。
スケーラブルなソリューションで、クロスサイトスクリプティングのようなセキュリティの脅威から保護。さらに、アプリを高速化するキャッシュのようなパフォーマンスベースの機能も組み込まれています。
WordPressサイトまたはPHPアプリケーションのホスティング
ウェブサイトやアプリケーションを運営するには、優れたホスティングが必要です。Kinstaでは、様々なプロジェクトと予算を考慮したホスティングソリューションを多数ご提供しています。
すべてのプランが高速かつ安全なインフラストラクチャを土台としたもので、エッジキャッシュや最先端のコンテンツデリバリネットワーク(CDN)を活用して、読み込み時間を劇的に短縮することができます。
さらに、アップデートや変更のテスト環境にぴったりの専用ステージングサイトも作成可能です。専用コントロールパネルのMyKistaから本番サイトへの反映も簡単に行えます。
Laravelベースのアプリケーション向けには、Laravelホスティングのページをご覧ください。
管理画面からアプリ、データベース、DNS、分析を簡単に管理することができます。また、GitHub、GitLab、またはBitbucketに接続することも可能です。
プランを選択し、セットアップを終えたら、すぐにMyKinstaでアプリケーションを管理したり、機能を追加・削除したりすることができます。例えば、「ツール」画面では、ワンクリックでPHPを再起動したり、PHPのバージョンを切り替えたりすることが可能です。
また、無料のステージング環境でPHPのバージョンをテストすることもできます。インターフェースの上部にあるドロップダウンメニュー(以下参照)から「Staging/ステージング」を選択するだけで完了します。
本番サイトに反映しても問題ないことを確認したら、「本番環境に適用」をクリックし、「次に適用する→LIVE」を選択すれば完了です。
WordPressの使用にPHPの知識は必要か
WordPressを使用するのに、PHPの知識は不要(精通せずとも利用は可能)です。WordPressのメリットは、コアソフトウェア、テーマ、プラグインという形で、すでにPHPが記述されている状態で利用できる点にあります。
当然ながら上級者であれば、PHPを使ってより高度なカスタマイズをすることができますが、一般的なWordPressユーザーはPHPを使いこなす必要はありません。
とは言え、PHPの基礎を学ぶことには、間違いなくメリットがあります。WordPressでよく使われるPHP関数を理解するだけでも、WordPressサイトを格段に構築、管理しやすくなります。phpinfo()の使用方法についてはこちらをご覧ください。
WordPressテーマやプラグインの開発には、PHPの習得は不可欠ですが、開発プロセスを高速化するために、PHPフレームワークを使用することをお勧めします。