【入門】PHPの特徴を理解しよう

【入門】PHPの特徴を理解しよう

どうもタスです。

前回は、PHPの歴史についてお伝えしました。

 

誕生や今までの進化を知ることで、PHPをより理解することができました。

そこで、今回はさらに一歩進んで、PHPの特徴についてお伝えしたいと思います。

これを知ることで、PHPの特徴や、どういった開発に向いているのか?実行形式は?コンパイルは行わない言語って聞いたけど?

などなど、いくつかの要点をお伝えしたいと思います。

 

PHPの特徴

【入門】PHPの特徴を理解しよう

大きな特徴として、PHPはHTMLに埋め込んで記述可能なスクリプト言語だということです。

また、それゆえ動的にHTMLを生成できるとも言えます。

PHPは、Webアプリケーションに特化したサーバサイドのプログラミング言語だということが分かると思います。

さらに、動的なWebアプリ以外にも、コマンドラインスクリプトとしても利用可能なことが挙げられます。

コマンドラインスクリプトによるバッチ処理も可能だということですね。

そういう意味では結構万能なプログラミング言語なのです。

 

PHPで作られているサービスやパッケージ

【入門】PHPの特徴を理解しよう

PHPが利用されているWebサービスの簡単な例を以下に挙げます。

とても有名なWebサービスが多いことにビックリしますよね。

  • WordPress
  • Zabbix
  • PukiWiki
  • facebook
  • ぐるなび

PHPがプログラミング言語として好ましくないような話を聞くことがありますが、これだけ有名で大規模なサービスで利用されていることは評価に値しますよね。

 

導入が簡単

【入門】PHPの特徴を理解しよう

PHPは導入が簡単なことも利用の一助になっています。

WindowsであればXamppを利用すれば簡単にPHPを利用することができますし、Linuxではパッケージ管理ツールで簡単にインストールが可能です。

 

Xamppのインストールは以下の記事が参考になりますよ。

 

Linuxへのインストール方法はWeb上にいくらでもありますが、以下のサイトは簡潔で分かりやすいかなと思いました。

 

PHPの実行形式について

【入門】PHPの特徴を理解しよう

PHPの実行形式として、モジュール形式とCGI形式の2種類の形式があります。

 

モジュール形式

Webサーバと同一プロセスでPHPを実行させる形式のことをいいます。

これは、Webサーバの機能の一部としてPHPを実行する形態です。

ただし、Apache(Webサーバ)であればmod_phpなどPHPを利用するためのモジュールの設定が必要になります(簡単ではありますが)。

 

CGI形式

CGI(Common Gateway Interface)は、Webサーバがリクエストに応じて様々なプログラムを実行する仕組みです。

よって、このモードでは、Webサーバと実行するプログラムは別プロセスで動作します。

そのため、リクエストの度にプロセスは破棄されるため、パフォーマンスとしてはモジュール形式の方が優れています。

ただし、別プロセスゆえWebサーバのユーザーと異なるユーザーで実行するため、セキュリティ的にはメリットと言えます。

 

PHPのコンパイルと実行について

【入門】PHPの特徴を理解しよう

PHPはインタプリタ言語なのにコンパイル?と不思議に思いますが、実際には内部的にコンパイルを行っています。

PHPプログラムを実行すると、内部でオペコード(Operation codes)と呼ばれる中間コードにコンパイルを行い、そのオペコードを実行マシンが実行します。

なお、オペコードを生成する過程では、レキサーとパーサーとよばれるものが内部でPHPプログラムを解析します。

レキサーとパーサーは以下の役割を担っています。

 

レキサー(Lexer)

レキサーは、PHPプログラムを解析し、構文をトークンに分解します。

PHPパーサトークンの一覧は以下のPHPマニュアルで確認できます。

 

パーサー(Parser)

パーサーは、レキサーによって生成されたトークンをパースし、コンパイルを経てオペコードへ変換を行います。

なお、パースの意味は以下の通りです。

一定の書式や文法に従って記述されたデータを解析し、プログラムで扱えるようなデータ構造の集合体に変換すること – e-Word

例えば、パースエラーになった場合は、PHPプログラムが実行されるまでに至っていないため、php.iniの設定をプログラム中で変更する
コーディングにしたとしても、それが処理されるところまで実行されていないということが分かります。

 

オペコードキャッシング

また、オペコードキャッシング処理により、前回実行後にPHPプログラムに対して変更がなければ、キャッシュしたオペコードを実行(レキサーやパーサー、コンパイルをパスする)することで高速化を図っています。

 

公式マニュアルが豊富

【入門】PHPの特徴を理解しよう

PHPマニュアルという公式サイトがあるが、情報が豊富で私も非常に利用しています。

PHPの歴史からインストール、言語リファレンスからセキュリティ対策まで膨大な情報が詰まっています。

何か困ったら当サイトを見れば十中八九は解決できるでしょう。

PHPマニュアル

 

まとめ

今回はPHPの特徴についてお伝えしました。

PHPが色々なサービスに使用されていることや、コンパイルを行う言語だということはあまり知られていないかもしれません。

そういったことを知れただけでも勉強になりました。

スポンサーリンク


Pocket


SNSでもご購読できます。

コメントを残す

*

タスlife