| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
Runkit_Sandbox_Parent(PECL runkit >= 0.7.0) Runkit_Sandbox_Parent — Runkit 反サンドボックス(Anti-Sandbox)クラス 説明
void Runkit_Sandbox_Parent::__construct
( void
)
Runkit_Sandbox クラスが作成した サンドボックス環境から Runkit_Sandbox_Parent クラスのインスタンスを作成し、サンドボックスからその親インスタンスに アクセスするための(管理された)手段を提供します。
Runkit_Sandbox_Parent の機能を有効にするには、 親のコンテキストから各サンドボックス単位で parent_access フラグを有効にする必要があります。 例1 サンドボックスから変数を使用する
<?php 親の変数にアクセスするサンドボックス内の変数へのアクセスと同様、親の変数の読み込みや 親の変数への書き込みが可能です。これは Runkit_Sandbox_Parent クラスのプロパティとして 扱われます。親の変数の読み込みは、parent_read 設定を有効にすることで可能となります(それに加えて、基本となる parent_access の設定も必要です)。 一方、書き込みについては parent_write の設定により 可能となります。 サンドボックス内の変数へのアクセスとは異なり、変数のスコープが グローバルに限定されることはありません。parent_scope を適切な整数値に設定することで、アクティブなコールスタック内で 他のスコープが使用可能です。0(デフォルト)は、グローバルスコープで 変数に直接アクセスします。1 は、サンドボックスのコードが実行された ブロック内のスコープを設定します。それより大きい値を指定した場合、 サンドボックスのコードを実行した関数の呼び出し元を順にたどり、 そのスコープの変数にアクセスしようと試みます。 例2 親の変数にアクセスする
<?php 上の例の出力は以下となります。 string(6) "Global" string(7) "three()" string(5) "two()" string(5) "one()" string(6) "Global" string(6) "Global" 親の関数をコールする適切な設定を有効にすることで、サンドボックスはその親の関数に アクセスすることが可能となります。 parent_call を有効にすると、サンドボックスから 親スコープの全ての関数をコールすることが可能となります。 言語構造については、以下のように個々の設定項目で管理されます。 print および echo は parent_echo を有効にすると使用可能です。 die() および exit() は parent_die を有効にすると使用可能です。 eval() は parent_eval を 有効にすると使用可能です。また while include、include_once、 require および require_once は parent_include を有効にすると使用可能です。 |
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「Runkit_Sandbox_Parent - Runkit 反サンドボックス(Anti-Sandbox)クラス」をGoogle検索
|