stellarwp / superglobals
一个处理对超全局变量访问的库。
Requires
- stellarwp/arrays: ^1.2
Requires (Dev)
- phpunit/phpunit: <10.0
- symfony/event-dispatcher-contracts: ^2.5.1
- symfony/string: ^5.4
- szepeviktor/phpstan-wordpress: ^1.1
README
一个处理对超全局变量访问的库。
为什么创建这样一个库?WordPress .org 不喜欢插件直接访问超全局变量,因此创建这个库以以一致和安全的方式处理这些问题,并可以作为composer依赖项使用。
目录
- 安装
- 用法
SuperGlobals::get_get_var( $var, $default = null )
SuperGlobals::get_post_var( $var, $default = null )
SuperGlobals::get_raw_superglobal( string $superglobal )
SuperGlobals::get_sanitized_superglobal( string $superglobal )
SuperGlobals::get_server_var( $var, $default = null )
SuperGlobals::get_var( $var, $default = null )
SuperGlobals::sanitize_deep( &$value )
安装
我们建议您通过 Composer 将 SuperGlobals 作为项目依赖项安装。
composer require stellarwp/superglobals
实际上,我们建议使用 Strauss 将此库包含到您的项目中。
幸运的是,将 Strauss 添加到您的
composer.json
只比添加一个典型依赖项稍微复杂一点,所以请查看我们的 strauss 文档。
关于命名空间的重要说明
此仓库中的文档将使用
StellarWP\SuperGlobals
作为基础命名空间,但是如果您在项目中使用 Strauss 来前缀命名空间,您需要相应地调整命名空间。(例如:Boom\Shakalaka\StellarWP\SuperGlobals
)
用法
SuperGlobals::get_get_var( $var, $default = null )
获取一个 $_GET
值并使用 SuperGlobals::sanitize_deep()
递归地对其进行清理。
示例
use StellarWP\SuperGlobals\SuperGlobals; // Get $_GET['post_id'] $var = SuperGlobals::get_get_var( 'post_id' ); // Provide a default value if the variable is not set. $var = SuperGlobals::get_get_var( 'post_id', 12 );
SuperGlobals::get_post_var( $var, $default = null )
获取一个 $_POST
值并使用 SuperGlobals::sanitize_deep()
递归地对其进行清理。
示例
use StellarWP\SuperGlobals\SuperGlobals; // Get $_POST['post_id'] $var = SuperGlobals::get_post_var( 'post_id' ); // Provide a default value if the variable is not set. $var = SuperGlobals::get_post_var( 'post_id', 12 );
SuperGlobals::get_raw_superglobal( string $superglobal )
获取请求的超全局变量。选项是 ENV
、GET
、POST
、REQUEST
或 SERVER
。
示例
use StellarWP\SuperGlobals\SuperGlobals; // Get $_ENV $env = SuperGlobals::get_raw_superglobal( 'ENV' ); // Get $_GET $get = SuperGlobals::get_raw_superglobal( 'GET' ); // Get $_POST $post = SuperGlobals::get_raw_superglobal( 'POST' ); // Get $_REQUEST $request = SuperGlobals::get_raw_superglobal( 'REQUEST' ); // Get $_SERVER $server = SuperGlobals::get_raw_superglobal( 'SERVER' );
SuperGlobals::get_sanitized_superglobal( string $superglobal )
获取请求的超全局变量,经过清理。选项是 ENV
、GET
、POST
、REQUEST
或 SERVER
。
示例
use StellarWP\SuperGlobals\SuperGlobals; // Get $_ENV $env = SuperGlobals::get_sanitized_superglobal( 'ENV' ); // Get $_GET $get = SuperGlobals::get_sanitized_superglobal( 'GET' ); // Get $_POST $post = SuperGlobals::get_sanitized_superglobal( 'POST' ); // Get $_REQUEST $request = SuperGlobals::get_sanitized_superglobal( 'REQUEST' ); // Get $_SERVER $server = SuperGlobals::get_sanitized_superglobal( 'SERVER' );
SuperGlobals::get_server_var( $var, $default = null )
获取一个 $_SERVER
值并使用 SuperGlobals::sanitize_deep()
递归地对其进行清理。
示例
use StellarWP\SuperGlobals\SuperGlobals; // Get $_SERVER['REQUEST_URI'] $var = SuperGlobals::get_server_var( 'REQUEST_URI' ); // Provide a default value if the variable is not set. $var = SuperGlobals::get_server_var( 'REQUEST_URI', 'http://example.com' );
SuperGlobals::get_var( $var, $default = null )
从 $_REQUEST
、$_POST
或 $_GET
中获取值,并使用 SuperGlobals::sanitize_deep()
递归地对其进行清理。
示例
use StellarWP\SuperGlobals\SuperGlobals; // Get $_REQUEST['post_id'] or $_POST['post_id'] or $_GET['post_id'], wherever it lives $var = SuperGlobals::get_var( 'post_id' ); // Provide a default value if the variable is not set. $var = SuperGlobals::get_var( 'post_id', 12 );
SuperGlobals::sanitize_deep( &$value )
递归地使用适当的清理函数对值进行清理。
示例
use StellarWP\SuperGlobals\SuperGlobals; $var = SuperGlobals::sanitize_deep( $some_var );