PHP
PHP / MySql

Recherche
 
ManuelPHP.com

Runkit_Sandbox
<<<
Runkit_Sandbox_Parent runkit_class_adopt
>>>

8.114 Fonctions runkit
8 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Configuration à l'exécution
Constantes pré-définies
Runkit_Sandbox
->Runkit_Sandbox_Parent
runkit_class_adopt
runkit_class_emancipate
runkit_constant_add
runkit_constant_redefine
runkit_constant_remove
runkit_function_add
runkit_function_copy
runkit_function_redefine
runkit_function_remove
runkit_function_rename
runkit_import
runkit_lint_file
runkit_lint
runkit_method_add
runkit_method_copy
runkit_method_redefine
runkit_method_remove
runkit_method_rename
runkit_return_value_used
runkit_sandbox_output_handler
runkit_superglobals

8.114.6 Runkit_Sandbox_Parent() Classe Anti-Sandbox Runkit

[ Exemples avec ndbox_parent ]   CVS uniquement

void  Runkit_Sandbox_Parent::__construct ( void )

L'instanciation de la classe Runkit_Sandbox_Parent à l'intérieure d'un environnement sandbox créé à partir de la classe Runkit_Sandbox fournit certains moyens (controllés) pour un sandbox fils pour accéder à son parent.

Note

Support Sandbox (requis pour runkit_lint , runkit_lint_file et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclue dans le paquetage runkit pour plus d'informations.

Afin de faire fonctionner une des fonctionnalités de Runkit_Sandbox_Parent , le support doit être activé sur une base de chaque sandbox en activant le drapeau parent_access à partir du contexte parent.

Travailler avec des variables dans un sandbox

<?php
$sandbox
= new Runkit_Sandbox();
$sandbox['parent_access'] = true;
?>

Comme les accès des variables de sandbox, les variables de parent sandbox devraient être lues et écrites à partir des propriétés de la classe Runkit_Sandbox_Parent . L'accès en lecture aux variables parentes devraient être activé avec la configuration parent_read (en plus de la base de configuration parent_access ). L'accès en écriture est activé avec la configuration parent_write .

La portée des variables est différente de l'accès aux variables enfants de sandbox; elle n'est pas limitée au variables globales seulement. En configurant la configuration parent_scope pour un entier approprié, les autres portées dans la pile active pourraient être inspectée. Une valeur de 0 (Défaut) autorisera l'accès direct aux variables dans la portée globale. 1 pointera l'accès des variables à n'importe quelles variables dont la portée était active au moment ou le bloc courant du code sandbox était exécuté. Des valeurs plus élevées font reculer à travers les fonctions qui ont appelées d'autres fonctions qui menent au code sandbox en train d'être exécuté et qui essaie d'accéder à ses propres variables parentes.

Accès aux variables parentes

<?php
$php
= new Runkit_Sandbox();
$php['parent_access'] = true;
$php['parent_read'] = true;

$test = "Global";

$php->eval('$PARENT = new Runkit_Sandbox_Parent;');

$php['parent_scope'] = 0;
one();

$php['parent_scope'] = 1;
one();

$php['parent_scope'] = 2;
one();

$php['parent_scope'] = 3;
one();

$php['parent_scope'] = 4;
one();

$php['parent_scope'] = 5;
one();

function
un() {
    
$test = "un()";
    
two();
}

function
deux() {
    
$test = "deux()";
    
three();
}

function
trois() {
    
$test = "trois()";
    
$GLOBALS['php']->eval('var_dump($PARENT->test);');
}
?>

L'exemple ci-dessus va afficher :


string(6) "Global"
string(7) "trois()"
string(5) "deux()"
string(5) "un()"
string(6) "Global"
string(6) "Global"

Comme l'accès avec sandbox, un sandbox peut accéder ses fonctions parentes si les configurations adéquates ont été activées. L'activation de parent_call autorisera le sandbox d'appeler toutes les fonctions disponibles à la portée parente. Les constructions de langage sont chacune contrôlées par ses propres configurations : print et echo sont activées avec parent_echo . die et exit sont activées avec parent_die . eval est activées avec parent_eval tandis que include , include_once , require et require_once sont activées avec parent_include .

<< Runkit_Sandbox_Parent >>
Runkit_Sandbox Fonctions runkit runkit_class_adopt





Google

Services webmasters

L'actualité PHP

Les manuels
 

ManuelPHP.com © 2003-2011 Tigersun - Crédits
Webmaster Site Internet - Télécharger des Logiciels - Programme TV - Entraide Informatique - Agence de Communication
2012-02-12