Extending and Embedding PHP

先月注文していた本がやっと届いた。

Extending and Embedding PHP (Developer's Library)

Extending and Embedding PHP (Developer's Library)

PHPの仕組みや、エクステンションなど、ちょっと踏み込んだ領域を知りたかったのだが、日本語の情報が非常に少なすぎる。
日本語を諦め、本書を購入した。

まだ、Introductionしか読んでいないが、知りたい情報は載っているようなので一安心。
今回から少しずつ、まとめていこうと思う。

導入1

なぜ、PHPを拡張したいのか

1. 既存のCライブラリを、PHPで使用したい
既存のCライブラリのAPIと、PHPエクステンションAPIをつかって、PHPから、Cプログラムを使用する事が出来る。
(例 mysql、SSH2など

2. 特殊な内部処理をする場合。
スーパーグローバル変数を宣言するような、特別な内部処理を行うことが出来る。

3. スピード
説明するまでもないであろう、実行速度。言うまでもなく、一般的に、PHPで書くより、Cで書いた方が早い。

4. プログラムソースを、簡単には解析されないようにするため
プログラムを販売する時などに、PHPのままだと、簡単にソースが見れてしまい、不正に複製される可能性が高い。そこで、Cで書いてバイナリにしてしまう。バイナリからでも、リエンジニアリングは可能だが、それなりに時間と手間がかかる。

埋め込み(embedding)とは何が出来るのか

エクステンションは、PHPから、Cで作ったプログラムを使うが、Cのプログラムから、PHPで作ったプログラムを使うことが出来る。