WEBサービスに特化したPHPでできること

PHP エンジニア(SE)・プログラマ 学習・スキルアップ

PHPでできること、できないこと

プログラムを作りたいけど、どの言語で作ろうか?とかPHPで作りたいけど何ができるの?という悩みを抱えている方も多いかと思います。そんな方々に、PHPでできることを紹介したり、どんなことに使われていたりするか、という事例などを紹介していきたいと思います。

PHPでできること

PHPはサーバーサイドに特化した言語です。中でも、HTTPを利用したWEBサービスについては非常に得意とする分野です。ブラウザを使って表示するのはもちろんのこと、アプリケーションとHTTPを利用して通信を行うことで、裏側の仕組みを広範囲にサポートします。

特に、サーバー上で動作するプログラムと切っても切り離せないデータベースとの連携は非常に簡単に行うことができます。また、PDOと呼ばれるデータベースとやり取りするためのライブラリによって、データベースの種類を意識することなく、プログラムを開発することができます。

また、取得してきたデータを解析/整形するための機能も豊富に用意されており、正規表現解析や数値の丸め、日付データの整形などを1行から数行程度のプログラムで実現することができます。そして、出力するデータについてもHTMLはもちろんのこと、SOAPで使用するXMLやRESTでしばしば使用されるJSONといった形式に簡単に相互変換することができます。

特に、PHPの場合は、この辺りの機能を全て標準機能として実現しているため、追加でライブラリをインストールしたり、どこかからサンプルコードを拾ってきたりする必要がありません。このように楽で自由が利く部分を経験してしまうと、他の言語で同じことをした時の手間や制約に少し戸惑ってしまうかもしれません。

PHPでできないこと

サーバー上で動作するWEBサービスに特化しているということから、その目的であるならば、ストレスなく様々なことを実現できるPHPではありますが、逆にクライアント側のプログラムを作ろうとした場合には、ほとんど出来ることが無くなってしまいます。

もちろん、サーバー上と同じようにコンソールやDOSプロンプトで実行するようなプログラムであれば、遜色なく作ることができますが、GUIを利用したプログラム、例えばウインドウを開いてボタンを表示したり、3Dのオブジェクトをリアルタイムで描画して動かしたりといったプログラムを作ることは、全く出来ませんし、スマホアプリのようなプログラムを作りたい場合は、別の言語を選択する必要があります。

PHPはこの部分を全て切り捨てることによって、簡単に動かすことができる言語であるにもかかわらず、それなりに高速なプログラムとして動作させることができるようになっています。

しかしPHPは、このような機能を持たない代わりに、これらのアプリケーションがサーバーと通信する場合に連携する機能を豊富に持っています。そのため、アプリを表に立たせつつ、裏側はPHPで処理するといったことを容易に実現させてくれます。

PHPを利用したパッケージやサービス

PHPでこんなことができるといったことをイメージしやすいように、こんなサービスがPHPで記述されているというのを挙げていきます。

WordPress

もともとはブログを作るためのパッケージでしたが、拡張に拡張を重ね、現在ではあらゆるサイトの構築に対応することのできるCMSとしての地位を確立しました。

多くのテンプレートとプラグインによる拡張が可能なため、その範囲内であればPHPの知識は不要ですが、そこから少しでも拡張をしたいと考えるのであれば、それなりのPHPの知識を要求されます。

個人のサイトのみならず、企業のホームページなどにも使われている場合が多く、仕事としてサイト制作を請け負う際に、コンテンツのメンテナンスのためにWordPressでの制作を指定される場合もあります。

EC-CUBE

有名な国産のECパッケージで、こちらも数多くの導入実績があります。国産であるため、国内で利用しやすい決済代行サービスと容易に連携することができるだけでなく、日本独自の商習慣に対応しているため、ECのパッケージとして利用する場合には、こちらを選択される場合も多くなっています。

こちらも度重なるバージョンアップにより性能の向上だけでなく、プラグインによる機能拡張のサポートも実現しており、一定の範囲内であればPHPの知識は不要ですが、主な利用用途がECである性質上、カスタマイズが必要になることが多く、PHPを習得している必要があります。

Facebook

世界的に有名なSNSであるFacebookですが、PHPが世界的に流行するきっかけとなったサービスです。最近、Facebook自体はHackという言語に置き換わりましたが、こちらはPHPをベースにしており、PHPにいくつかの追加要素を導入して、実行速度の向上を図ったものです。

実際に、Facebookの実行されているHHVM(サーバー上の仮想マシン)ではPHPをそのまま実行することも可能になっています。

ぐるなび

飲食店の検索サービスとして有名な「ぐるなび」も、PHPを使って開発されたサービスになります。細かい修正にも対応出来る柔軟かつ簡単な言語として採用されています。

ユーザー側に見せるページだけでなく、管理系まで含めたページがPHPを利用して開発しており、PHPのみで開発された大規模サービスとしての参考になるかと思います。

楽天

有名なショッピングモールの「楽天」も、一部はRubyを使用したりしているものの、大半のプログラムはPHPで作られています。楽天の場合はサービス範囲も広く、それぞれにおいて別のシステムとして開発しているため、使われているパッケージなどにはバラツキがあります。

中にはオープンソースを利用したものも多く、PHPで開発されているたくさんのオープンソースを利用することで開発期間などを短縮することができるのは、PHPの強みでもあると思います。

サイボウズ

社内業務管理のシステムとして有名なサイボウズですが、これも多くの部分でPHPが使われています。サイボウズでは、独自のフレームワークを使われています。

独自のフレームワークには弊害もありますが、既存の枠組みに当てはまらないものであればあるほど、独自でフレームワークを開発することのメリットが大きく、他の言語に比べてフレームワーク自体の開発も非常に容易に行うことができるようになっているのも、PHPの特徴であります。

pixiv

イラストを主体にしたSNSサービスです。こちらは、PHPを主体としていますが、他の言語で開発されたサービスとの連携も行っています。主にはJSONによる連携ですが、PHPの場合はJSONのデータに自由に変換したり、戻したりといったことが可能になっているため、言語にとらわれない連携をすることも容易に行うことができます。

PHPは簡単ですけど非常に多機能な言語です。


PHPはサーバーサイドに限定すれば、非常に多機能な言語です。それだけでなく簡単なため、利用できるプログラマが多いというのも大きな特徴です。その反面、全体としてのプログラマの質は高くないという問題があります。

しかし、これから勉強していく方からして見ると、勉強していけば、相対的に優秀なプログラマとして認められやすい、ということがあります。ですので、今からPHPを勉強しても遅い、ということはなく、その人のやる気次第ではありますが、他の言語に比べれば習得が容易な分、先に学習した方に追いつきやすいということにもなります。

また、WEB上で動くサービスは継続的に拡張することを期待されているため、提供する側から見ても、安定してプログラマを確保しやすいPHPはサービス運営を安定させるという観点からも、採用するメリットが大きくなっています。PHPは他の言語で書かれたプログラムと連携することが容易になっているため、全てをPHPとしてではなく、一部をPHPで開発したり、PHPで開発したものを別の言語で置き換えたりといったことを柔軟に実現してくれます。

これらの特徴から、開発するときにとりあえずPHPで作るという選択肢に強みがあるため、学習する場合にも、とりあえずPHPを勉強するというのも現実的な選択肢になりえます。このような特徴を持つPHPはプログラマとして、習得する価値のある言語だと考えていますが、どう思いますか?

>>リモートワーク案件も充実!PHPのフリーランス求人案件をクラウドテックで探す

関連記事