Forum und email

runkit 関数

導入

runkit 拡張モジュールは、定数・ユーザ定義関数 およびユーザ定義クラスを変更する機能を提供します。 また、独自のスーパーグローバル変数を定義したり、 サンドボックスを利用した組み込みインタプリタの作成も可能です。

この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 » https://pecl.php.net/package/runkit.

このパッケージには、 » classkit パッケージに 取って代わるための機能も含まれています。 ./configure に --enable-runkit=classkit オプションを つけてコンパイルすると、classkit と互換性のある関数や定数を提供します。

インストール手順

この » PECL 拡張 モジュールは PHP にバンドルされていません。

この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 » https://pecl.php.net/package/runkit.

この PECL 拡張モジュール用の DLL は、» PHP のダウンロード ページあるいは » https://pecl4win.php.net/ からダウンロードできます。

要件

定数・関数・クラス・メソッドの変更機能 は、PHP 4 と PHP 5 の全てのリリースで動作します。特別な動作条件はありません。

独自のスーパーグローバル変数 は PHP 4.2.0 以降で使用可能です。

サンドボックスのサポート は、PHP 5.1.0 以降か あるいは TSRM パッチを適用した PHP 5.0.0 が必要です。 どのバージョンの PHP を使用しているかにかかわらず、コンパイル時に --enable-maintainer-zts オプションが必要です。 詳しい情報は、runkit パッケージに含まれる README ファイルを参照ください。

実行時設定

php.ini の設定により動作が変化します。

Runkit 設定オプション
名前 デフォルト 変更の可否 変更履歴
runkit.superglobal "" PHP_INI_PERDIR  
runkit.internal_override "0" PHP_INI_SYSTEM  
PHP_INI_* 定数の詳細および定義については php.ini ディレクティブ を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

runkit.superglobal string
スーパーグローバルとして扱いたい変数名の、カンマ区切りのリストです。 これはシステム全体で利用する php.ini ファイルで指定すべきですが、SAPI の設定によってはディレクトリローカルで指定しても動作するかもしれません。

Example#1 php.ini で runkit.superglobal=_FOO,_BAR と指定した場合のスーパーグローバル

<?php
function show_values() {
  echo 
"Foo is $_FOO\n";
  echo 
"Bar is $_BAR\n";
  echo 
"Baz is $_BAZ\n";
}

$_FOO 'foo';
$_BAR 'bar';
$_BAZ 'baz';

/* foo と bar が表示されるが、baz は表示されない */
show_values();
?>

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

RUNKIT_IMPORT_FUNCTIONS (integer)
runkit_import() のフラグで、 指定したファイルから通常の関数が読み込まれることを示します。
RUNKIT_IMPORT_CLASS_METHODS (integer)
runkit_import() のフラグで、 指定したファイルからクラスメソッドが読み込まれることを示します。
RUNKIT_IMPORT_CLASS_CONSTS (integer)
runkit_import() のフラグで、 指定したファイルからクラス定数が読み込まれることを示します。 このフラグは PHP のバージョン 5.1.0 以降でしか意味を持たないことに 注意しましょう。
RUNKIT_IMPORT_CLASS_PROPS (integer)
runkit_import() のフラグで、 指定したファイルからクラスのプロパティが読み込まれることを示します。
RUNKIT_IMPORT_CLASSES (integer)
runkit_import() のフラグで、 RUNKIT_IMPORT_CLASS_* の論理和(ビット OR)を表します。
RUNKIT_IMPORT_OVERRIDE (integer)
runkit_import() のフラグで、 すでに存在する関数・メソッド・定数 あるいはプロパティが指定された場合に新しい定義で置き換えることを 示します。このフラグが設定されていない場合、すでに定義されている 内容については新しい定義は無視されます。
RUNKIT_ACC_PUBLIC (integer)
runkit_method_add() の PHP5 限定のフラグです。
RUNKIT_ACC_PROTECTED (integer)
runkit_method_add() の PHP5 限定のフラグです。
RUNKIT_ACC_PRIVATE (integer)
runkit_method_add() の PHP5 限定のフラグです。
CLASSKIT_ACC_PUBLIC (integer)
runkit_method_add() の PHP5 限定のフラグです。 classkit 互換モードが有効になっている場合にのみ定義されます。
CLASSKIT_ACC_PROTECTED (integer)
runkit_method_add() の PHP5 限定のフラグです。 classkit 互換モードが有効になっている場合にのみ定義されます。
CLASSKIT_ACC_PRIVATE (integer)
runkit_method_add() の PHP5 限定のフラグです。 classkit 互換モードが有効になっている場合にのみ定義されます。
CLASSKIT_AGGREGATE_OVERRIDE (integer)
classkit_import() の PHP5 限定のフラグです。 classkit 互換モードが有効になっている場合にのみ定義されます。
RUNKIT_VERSION (string)
runkit パッケージのバージョンを定義します。
CLASSKIT_VERSION (string)
runkit パッケージのバージョンを定義します。 classkit 互換モードが有効になっている場合にのみ定義されます。

目次