PHP バイトコードコンパイラとは? わかりやすく解説

Weblio 辞書 > 同じ種類の言葉 > 情報 > コンピュータ > コンパイラ > PHP バイトコードコンパイラの意味・解説 

PHP バイトコードコンパイラ (bcompiler)

導入


警告
この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。

Bcompiler は、以下のような目的で作成されました。
プロプライエタリな PHP アプリケーションのスクリプト全体を エンコードするため
プロプライエタリな PHP アプリケーションの一部のクラスや関数を エンコードするため
クライアントのデスクトップで動作する php-gtk アプリケーションを、 php.exe を用いずに実行させるため
PHP から C へのコンバータの実現可能性を調べるため
最初の目的は bcompiler_write_header()bcompiler_write_file() および bcompiler_write_footer() を使用することで 実現できます。バイトコードのファイルが、圧縮されていないか あるいはプレーンな形式で書き出されます。 出来上がったバイトコードは、単純に include や require を用いる ことで使用可能です。
2 番目の目的を実現するには bcompiler_write_header()bcompiler_write_class()bcompiler_write_footer()bcompiler_read() および bcompiler_load() 関数を使用します。 バイトコードのファイルが、圧縮されていないか あるいはプレーンな形式で書き出されます。 bcompiler_load() は、bzip で圧縮された バイトコードファイルを読み込みます。これは元のファイルに比べて 1/3 程度の大きさになります。
EXE 形式のファイルを作成するには、修正された sapi ファイルか 共有ライブラリとしてコンパイルされた PHP とともに bcompiler を使用する必要があります。この場合、bcompiler は 圧縮されたバイトコードを exe ファイルの後ろから読み込みます。
圧縮しないバイトコードのみで使用した場合、bcompiler によって 処理速度を約 30% 向上させることが可能です。しかし、圧縮しない バイトコードは元のソースコードに比べて 5 倍程度の大きさに なることに気をつけてください。バイトコードを圧縮することで 容量を節約することが可能ですが、圧縮ファイルを展開するのには ソースコードをパースするよりはるかに長い時間がかかります。 bcompiler はバイトコードに対する最適化を一切行いません。 これは将来のバージョンで対応する予定です…。
コードの保護という点に関しては、もとのソースコードやコメントを 復元することは不可能であると考えて間違いありません。bcompiler のバイトコードをもとにしてコードを復元し、クラスに手を加える といったことは無意味です。しかし、bcompiler で作成した バイトコードファイルからデータを取り出すことは可能です。 個人的なパスワードなどの情報をバイトコードの中に含めないでください。

インストール手順

簡単なインストール手順
  • 圧縮機能を動作させるには、少なくとも PHP 4.3 が必要です。
  • PHP 4.3 以降のバージョンに unix コマンドプロンプト上で インストールするには、pear install bcompiler とタイプします。
  • Windows 上でインストールする場合、バイナリパッケージを配布する 仕組みが整うまでは、pear-general メーリングリストのアーカイブから ビルド済みパッケージを探してください (あるいは、もし見つからなければ メーリングリストにメールを送ってください)。
  • 古いバージョンにインストールするには、ビルドするために 多少手を加える必要があります。
  • bcompiler.tgz アーカイブを php4/ext に展開します (これは、PECL » http://pecl.php.net/get/bcompiler から取得可能です)。
  • 新しく作成されたディレクトリが bcompiler-0.x のような名前に なっていれば、それを bcompiler という名前に変更します (単に PHP モジュールのみをビルドしたいのであれば、これは不要です)。
  • PHP 4.3 より前のバージョンを使用している場合は、 Makefile.in.oldMakefile.in に、そして config.m4.oldconfig.m4 にそれぞれコピーする必要があります。
  • ext/bcompilerphpize を実行します。
  • php4./buildconf を実行します。
  • --enable-bcompiler (およびその他のオプション) を指定して configure を実行します。
  • make; make install
  • これで終わりです。

連絡先

コメント・バグ修正・機能拡張の提案や、 開発を手伝ってくださるという方は、» alan_k@php.net までメールをください。お待ちしています。

目次

bcompiler_load_exe — bcompiler の exe ファイルを読み込み、クラスを生成する
bcompiler_load — bz 圧縮されたファイルを読み込み、クラスを生成する
bcompiler_parse_class — クラスのバイトコードを読み込み、ユーザ関数をコールする
bcompiler_read — ファイルハンドルを読み込み、クラスを生成する
bcompiler_write_class — 定義したクラスをバイトコードとして書き込む
bcompiler_write_constant — 定義した定数をバイトコードとして書き込む
bcompiler_write_exe_footer — 開始位置および exe 形式ファイルのフッタを書き込む
bcompiler_write_file — php ソースファイルをバイトコードとして書き込む
bcompiler_write_footer — コンパイルされたデータの終了を示す文字 \x00 を書き込む
bcompiler_write_function — 定義した関数をバイトコードとして書き込む
bcompiler_write_functions_from_file — ファイル内で定義されているすべての関数を バイトコードとして書き込む
bcompiler_write_header — bcompiler のヘッダを書き込む




PHP バイトコードコンパイラと同じ種類の言葉

このページでは「PHP関数リファレンス」からPHP バイトコードコンパイラを検索した結果を表示しています。
Weblioに収録されているすべての辞書からPHP バイトコードコンパイラを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からPHP バイトコードコンパイラ を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「PHP バイトコードコンパイラ」の関連用語


2
4% |||||

PHP バイトコードコンパイラのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



PHP バイトコードコンパイラのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.

©2025 GRAS Group, Inc.RSS