runkit Functions
簡介
The runkit extension provides means to modify constants, user-defined functions, and user-defined classes. It also provides for custom superglobal variables and embeddable sub-interpreters via sandboxing.
安裝此 PECL 擴充功能的訊息可在手冊中標題為 PECL 擴充功能安裝的一章中找到。 更多訊息如新版本,下載,原始文件,維護者訊息以及更新日誌等可以在這裡找到: » https://pecl.php.net/package/runkit.
This package is meant as a feature added replacement for the » classkit package. When compiled with the --enable-runkit=classkit option to ./configure, it will export classkit compatible function definitions and constants.
安裝
本 » PECL 擴充功能未包含於 PHP 中。
安裝此 PECL 擴充功能的訊息可在手冊中標題為 PECL 擴充功能安裝的一章中找到。 更多訊息如新版本,下載,原始文件,維護者訊息以及更新日誌等可以在這裡找到: » https://pecl.php.net/package/runkit.
可以從 » PHP 下載頁面或者 » https://snaps.php.net/ 下載此 PECL 擴充功能的 DLL 文件。
需求
Modifying Constants, Functions, Classes, and Methods works with all releases of PHP 4 and PHP 5. No special requirements are necessary.
Custom Superglobals are only available in PHP 4.2.0 or later.
Sandboxing requires PHP 5.1.0 or later, or PHP 5.0.0 with a special TSRM patch applied. Regardless of which version of PHP is in use it must be compiled with the --enable-maintainer-zts option. See the README file in the runkit package for additional information.
執行時期設定
這些函式的行為受 php.ini 的影響。
Name | Default | Changeable | Changelog |
---|---|---|---|
runkit.superglobal | "" | PHP_INI_PERDIR | |
runkit.internal_override | "0" | PHP_INI_SYSTEM |
以下是設定選項的簡要解釋。
- runkit.superglobal string
-
Comma-separated list of variable names to be treated as superglobals.
This value should be set in the systemwide php.ini file, but may work
in perdir configuration contexts depending on your SAPI.
Example#1 Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini
<?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';
/* Displays foo and bar, but not baz */
show_values();
?>
預設常數
以下常數由擴充功能定義,因此只有在擴充功能被編譯到 PHP 中,或者在執行時被動態載入後才有效。
- RUNKIT_IMPORT_FUNCTIONS (integer)
- runkit_import() flag indicating that normal functions should be imported from the specified file.
- RUNKIT_IMPORT_CLASS_METHODS (integer)
- runkit_import() flag indicating that class methods should be imported from the specified file.
- RUNKIT_IMPORT_CLASS_CONSTS (integer)
- runkit_import() flag indicating that class constants should be imported from the specified file. Note that this flag is only meaningful in PHP versions 5.1.0 and above.
- RUNKIT_IMPORT_CLASS_PROPS (integer)
- runkit_import() flag indicating that class standard properties should be imported from the specified file.
- RUNKIT_IMPORT_CLASSES (integer)
- runkit_import() flag representing a bitwise OR of the RUNKIT_IMPORT_CLASS_* constants.
- RUNKIT_IMPORT_OVERRIDE (integer)
- runkit_import() flag indicating that if any of the imported functions, methods, constants, or properties already exist, they should be replaced with the new definitions. If this flag is not set, then any imported definitions which already exist will be discarded.
- RUNKIT_ACC_PUBLIC (integer)
- PHP 5 specific flag to runkit_method_add()
- RUNKIT_ACC_PROTECTED (integer)
- PHP 5 specific flag to runkit_method_add()
- RUNKIT_ACC_PRIVATE (integer)
- PHP 5 specific flag to runkit_method_add()
- CLASSKIT_ACC_PUBLIC (integer)
- PHP 5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.
- CLASSKIT_ACC_PROTECTED (integer)
- PHP 5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.
- CLASSKIT_ACC_PRIVATE (integer)
- PHP 5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.
- CLASSKIT_AGGREGATE_OVERRIDE (integer)
- PHP 5 specific flag to classkit_import() Only defined when classkit compatibility is enabled.
- RUNKIT_VERSION (string)
- Defined to the current version of the runkit package.
- CLASSKIT_VERSION (string)
- Defined to the current version of the runkit package. Only defined when classkit compatibility is enabled.
Table of Contents
- Runkit_Sandbox — Runkit Sandbox Class -- PHP Virtual Machine
- Runkit_Sandbox_Parent — Runkit Anti-Sandbox Class
- runkit_class_adopt — Convert a base class to an inherited class, add ancestral methods when appropriate
- runkit_class_emancipate — Convert an inherited class to a base class, removes any method whose scope is ancestral
- runkit_constant_add — Similar to define(), but allows defining in class definitions as well
- runkit_constant_redefine — Redefine an already defined constant
- runkit_constant_remove — Remove/Delete an already defined constant
- runkit_function_add — Add a new function, similar to create_function
- runkit_function_copy — Copy a function to a new function name
- runkit_function_redefine — Replace a function definition with a new implementation
- runkit_function_remove — Remove a function definition
- runkit_function_rename — Change a function's name
- runkit_import — Process a PHP file importing function and class definitions, overwriting where appropriate
- runkit_lint_file — Check the PHP syntax of the specified file
- runkit_lint — Check the PHP syntax of the specified php code
- runkit_method_add — Dynamically adds a new method to a given class
- runkit_method_copy — Copies a method from class to another
- runkit_method_redefine — Dynamically changes the code of the given method
- runkit_method_remove — Dynamically removes the given method
- runkit_method_rename — Dynamically changes the name of the given method
- runkit_return_value_used — Determines if the current functions return value will be used
- runkit_sandbox_output_handler — Specify a function to capture and/or process output from a runkit sandbox
- runkit_superglobals — Return numerically indexed array of registered superglobals