Skip to content

Commit 6946e52

Browse files
committed
README UPDATE
1 parent 28af182 commit 6946e52

File tree

2 files changed

+61
-190
lines changed

2 files changed

+61
-190
lines changed

README.md

Lines changed: 29 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
1-
# SG - PHP Superglobals Management
1+
# SG - PHP Syntax Sugar Extension
2+
23
[![Build Status](https://travis-ci.org/yulonghu/sg.svg?branch=master)](https://travis-ci.org/yulonghu/sg)
34

4-
A Simple PHP Superglobals Management
5+
A simple PHP syntax sugar extension
56

67
[中文文档](https://github.com/yulonghu/sg/blob/master/README_ZH.md)
78

89
### Introduction
910

1011
[SG](https://github.com/yulonghu/sg) Full name [Superglobals](http://php.net/manual/en/language.variables.superglobals.php), References all variables available in global scope, SG has extended a new way to manage PHP superglobals variables, Make the management of PHP superglobals variables simple and unified.
1112

12-
These superglobal variables managed by SG are: $GLOBALS, $_SERVER, $_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST, $_ENV.
13+
These superglobal variables managed by SG are: $_SERVER, $_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST, $_ENV.
14+
15+
Very important point: it is very simple.
1316

1417
### Features
1518
- Simple, Fast, Lightweight
1619
- Access PHP superglobals zero-copy, Synchronously update PHP Superglobals variables
17-
- Support string values automatically filters spaces [PHP trim](http://php.net/manual/en/function.trim.php)
20+
- Support for custom function, Default call [PHP trim](http://php.net/manual/en/function.trim.php)
1821
- Solve the problem of undefined series when using PHP Superglobals variables (Undefined variable, Undefined offset)
19-
- Replace the PHP array dimension with a decimal point
22+
- Use static function method, Replace the PHP array dimension with a decimal point
23+
- Use global statement, Replace the PHP array dimension with a underline
24+
- Support for global key the option configuration, Default level one lookup
2025

2126
## Install
2227
### Supported Version
@@ -56,26 +61,27 @@ bool sg::has(string $key)
5661
bool sg::del(string $key [, mixed $... ])
5762
```
5863

59-
### Inis
60-
```ini
61-
sg.enable = On/Off ; Default Off
62-
sg.auto_trim = On/Off ; Strip whitespace with PHP trim
63-
```
64+
### Inis(php.ini)
65+
| Options | Permission | Type | Default | Desc |
66+
|---|---|---|---|---|
67+
|sg.enable|PHP_INI_SYSTEM|bool|0| 0 Trun-Off 1 Turn-On|
68+
|sg.global_level|PHP_INI_SYSTEM|bool|1| 1 Limit Level 0 Unlimited Level|
69+
|sg.func_name|PHP_INI_ALL|char|trim| [PHP trim](http://php.net/manual/en/function.trim.php), Support for custom function|
6470

65-
### Superglobals <=> SG HashMap
71+
### Hash Map
6672
- When management PHP sessions (MapKey = n), First call the function session_start()
6773

68-
|PHP Predefined Superglobals|SG MapKey| Method Example|
69-
| ------ | ------ | ------ |
70-
|$GLOBALS|-|sg::all()|
71-
|$_SERVER|s|sg::get/set/has/del('s')|
72-
|$_GET|g|sg::get/set/has/del('g')|
73-
|$_POST|p|sg::get/set/has/del('p')|
74-
|$_FILES|f|sg::get/set/has/del('f')|
75-
|$_COOKIE|c|sg::get/set/has/del('c')|
76-
|$_SESSION|n|sg::get/set/has/del('n')|
77-
|$_REQUEST|r|sg::get/set/has/del('r')|
78-
|$_ENV|e|sg::get/set/has/del('e')|
74+
|PHP Predefined Superglobals|SG Key|global statement| Method Example|
75+
| ------ | ------ | ------ | ------ |
76+
|$GLOBALS|-|-|sg::all()|
77+
|$_SERVER|s|global $s|sg::get/set/has/del('s')|
78+
|$_GET|g|global $g|sg::get/set/has/del('g')|
79+
|$_POST|p|global $p|sg::get/set/has/del('p')|
80+
|$_FILES|f|global $f|sg::get/set/has/del('f')|
81+
|$_COOKIE|c|global $c|sg::get/set/has/del('c')|
82+
|$_SESSION|n|global $n|sg::get/set/has/del('n')|
83+
|$_REQUEST|r|global $r|sg::get/set/has/del('r')|
84+
|$_ENV|e|global $e|sg::get/set/has/del('e')|
7985

8086
### Usage
8187

@@ -88,6 +94,7 @@ var_dump(sg::set('user.0.1', 'user 1 apple')); // Same as $GLOBALS['test'][0][1]
8894
var_dump(sg::set('user.a.a', 'user a apple')); // Same as $GLOBALS['test']['a']'a']
8995
var_dump(sg::set('user.a.b', 'user b apple')); // Same as $GLOBALS['test']['a']'b']
9096
```
97+
9198
The above example will output:
9299
```txt
93100
bool(true)
@@ -170,74 +177,6 @@ array(2) {
170177
### array sg::all(void)
171178
The same result as [$GLOBALS](https://www.php.net/manual/zh/reserved.variables.globals.php)
172179

173-
## Example
174-
175-
### Example #1
176-
177-
|OLD GET METHOD (Short)|NEW GET METHOD|
178-
| ------ | ------ |
179-
|$_SERVER['key']|sg::get('s.key')|
180-
|$_GET['key']|sg::get('g.key')|
181-
|$_POST['key']|sg::get('p.key')|
182-
|$_FILES['key']|sg::get('f.key')|
183-
|$_COOKIE['key']|sg::get('c.key')|
184-
|$_SESSION['key']|sg::get('n.key')|
185-
|$_REQUEST['key']|sg::get('r.key')|
186-
|$_ENV['key']|sg::get('e.key')|
187-
188-
|OLD GET METHOD (Long)|NEW GET METHOD|
189-
| ------ | ------ |
190-
|$_SERVER['key']['key1']['key2']|sg::get('s.key.key1.key2')|
191-
|$_GET['key']['key1']['key2']|sg::get('g.key.key1.key2')|
192-
|$_POST['key']['key1']['key2']|sg::get('p.key.key1.key2')|
193-
|$_FILES['key']['key1']['key2']|sg::get('f.key.key1.key2')|
194-
|$_COOKIE['key']['key1']['key2']|sg::get('c.key.key1.key2')|
195-
|$_SESSION['key']['key1']['key2']|sg::get('n.key.key1.key2')|
196-
|$_REQUEST['key']['key1']['key2']|sg::get('r.key.key1.key2')|
197-
|$_ENV['key']['key1']['key2']|sg::get('e.key.key1.key2')|
198-
199-
|OLD GET METHOD (isset + trim)|NEW GET METHOD|
200-
| ------ | ------ |
201-
|$key = isset($_SERVER['key']) ? trim($_SERVER['key']) : null;|$key = sg::get('s.key');|
202-
|$key = isset($_GET['key']) ? trim($_GET['key']) : null;|$key = sg::get('g.key');|
203-
|$key = isset($_POST['key']) ? trim($_POST['key']) : null;|$key = sg::get('p.key');|
204-
|$key = isset($_FILES['key']) ? trim($_FILES['key']) : null;|$key = sg::get('f.key');|
205-
|$key = isset($_COOKIE['key']) ? trim($_COOKIE['key']) : null;|$key = sg::get('c.key');|
206-
|$key = isset($_SESSION['key']) ? trim($_SESSION['key']) : null;|$key = sg::get('n.key');|
207-
|$key = isset($_REQUEST['key']) ? trim($_REQUEST['key']) : null;|$key = sg::get('r.key');|
208-
|$key = isset($_ENV['key']) ? trim($_ENV['key']) : null;|$key = sg::get('e.key');|
209-
210-
|(PHP7) OLD GET METHOD (??)|NEW GET METHOD|
211-
| ------ | ------ |
212-
|$key = $_SERVER['key'] ?? null; $key = trim($key);|$key = sg::get('s.key');|
213-
|$key = $_GET['key'] ?? null; $key = trim($key);|$key = sg::get('g.key');|
214-
|$key = $_POST['key'] ?? null; $key = trim($key);|$key = sg::get('p.key');|
215-
|$key = $_FILES['key'] ?? null; $key = trim($key);|$key = sg::get('f.key');|
216-
|$key = $_COOKIE['key'] ?? null; $key = trim($key);|$key = sg::get('c.key');|
217-
|$key = $_SESSION['key'] ?? null; $key = trim($key);|$key = sg::get('n.key');|
218-
|$key = $_REQUEST['key'] ?? null; $key = trim($key);|$key = sg::get('r.key');|
219-
|$key = $_ENV['key'] ?? null; $key = trim($key);|$key = sg::get('e.key');|
220-
221-
### sg.auto_trim
222-
223-
For best performance, sg will change the original value if the trim condition is met. Avoid repeat the trim operation each time you take a value.
224-
225-
```php
226-
<?php
227-
ini_set('sg.auto_trim', 1);
228-
function One() {
229-
var_dump(sg::set('test', ' test apple ')); // Auto-call PHP trim
230-
}
231-
function Two() {
232-
var_dump(sg::get('test'));
233-
}
234-
```
235-
The above example will output:
236-
```txt
237-
bool(true)
238-
string(10) "test apple"
239-
```
240-
241180
## License
242181
SG is open source software under the [PHP License v3.01](http://www.php.net/license/3_01.txt)
243182

README_ZH.md

Lines changed: 32 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
1-
# SG - PHP Superglobals Management
1+
# SG - PHP Syntax Sugar Extension
2+
23
[![Build Status](https://travis-ci.org/yulonghu/sg.svg?branch=master)](https://travis-ci.org/yulonghu/sg)
34

4-
一个超级简单的PHP超全局变量管理扩展
5+
一个简单的PHP语法糖扩展
56

67
[English Document](https://github.com/yulonghu/sg/blob/master/README.md)
78

89
### 介绍
910

10-
[SG](https://github.com/yulonghu/sg) 全称 [Superglobals](http://php.net/manual/en/language.variables.superglobals.php),引用全局作用域中可用的全部变量。SG扩展了一种全新的PHP超全局变量管理方式,使得PHP超全局变量的管理变得简单化、统一化。
11+
[SG](https://github.com/yulonghu/sg) 全称 [Superglobals](http://php.net/manual/en/language.variables.superglobals.php),引用全局作用域中可用的全部变量。SG扩展了一种全新的PHP超全局变量管理方式。
12+
13+
SG管理的这些超全局变量有:$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。
14+
15+
当然了,也可以应用到自定义变量场景。
1116

12-
SG管理的这些超全局变量是:$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。
17+
非常重要的一点:它很简单!
1318

1419
### 亮点功能
1520
- 简单,快速,轻量
16-
- 零拷贝访问PHP超全局变量,同步更新PHP超全局变量
17-
- 支持字符串自动过滤前后空格[PHP trim](http://php.net/manual/en/function.trim.php)
21+
- 零拷贝访问PHP超全局变量,使用SG会同步更新PHP超全局变量
22+
- 支持取值前调用自定义函数,默认情况下,字符串变量会自动调用 [PHP trim](http://php.net/manual/en/function.trim.php)
1823
- 解决使用PHP超全局变量时出现未定义系列的问题 (Undefined variable, Undefined offset)
19-
- 以小数点替换PHP数组维数
24+
- 采用函数调用方式时,以小数点代替PHP数组维度
25+
- 采用global声明方式时,以下划线代替PHP数组维度
26+
- 支持global key维度深度可配置,默认一级查找
2027

2128
## 安装
2229
### PHP版本支持包括
@@ -55,27 +62,27 @@ bool sg::set(string $key, mixed $value)
5562
bool sg::has(string $key)
5663
bool sg::del(string $key [, mixed $... ])
5764
```
65+
### 配置项(php.ini)
66+
| 配置项 | 权限 | 类型 |默认值 | 说明 |
67+
|---|---|---|---|---|
68+
|sg.enable|PHP_INI_SYSTEM|bool|0| 0 关闭 1 开启|
69+
|sg.global_level|PHP_INI_SYSTEM|bool|1| 1 只支持一级查找 0 无限制查找|
70+
|sg.func_name|PHP_INI_ALL|char|trim|默认调用 [PHP trim](http://php.net/manual/en/function.trim.php) 函数,也支持自定义函数 |
5871

59-
### 支持的INI配置项
60-
```ini
61-
sg.enable = On/Off ; Default Off
62-
sg.auto_trim = On/Off ; Strip whitespace with PHP trim
63-
```
64-
65-
### 超全局变量 与 SG MAP表对应关系
72+
### Hash Map
6673
- 管理PHP会话时(MapKey = n), 请先调用函数 session_start()
6774

68-
|PHP默认超全局变量|SG MapKey(关键字缩写)|SG使用|
69-
| ------ | ------ | ------ |
70-
|$GLOBALS||sg::all()|
71-
|$_SERVER|s|sg::get/set/has/del('s')|
72-
|$_GET|g|sg::get/set/has/del('g')|
73-
|$_POST|p|sg::get/set/has/del('p')|
74-
|$_FILES|f|sg::get/set/has/del('f')|
75-
|$_COOKIE|c|sg::get/set/has/del('c')|
76-
|$_SESSION|n|sg::get/set/has/del('n')|
77-
|$_REQUEST|r|sg::get/set/has/del('r')|
78-
|$_ENV|e|sg::get/set/has/del('e')|
75+
|PHP 超全局变量|SG key (关键字缩写)|global 声明|函数|
76+
| ------ | ------ | ------ | ------ |
77+
|$GLOBALS|||sg::all()|
78+
|$_SERVER|s|global $s|sg::get/set/has/del('s')|
79+
|$_GET|g|global $g|sg::get/set/has/del('g')|
80+
|$_POST|p|global $p|sg::get/set/has/del('p')|
81+
|$_FILES|f|global $f|sg::get/set/has/del('f')|
82+
|$_COOKIE|c|global $c|sg::get/set/has/del('c')|
83+
|$_SESSION|n|global $n|sg::get/set/has/del('n')|
84+
|$_REQUEST|r|global $r|sg::get/set/has/del('r')|
85+
|$_ENV|e|global $e|sg::get/set/has/del('e')|
7986

8087
### 方法的使用
8188

@@ -101,7 +108,6 @@ bool(true)
101108
bool(true)
102109
bool(true)
103110
```
104-
105111
#### mixed sg::get(string $key [, mixed $default_value = null])
106112

107113
读取全局作用域变量, 找不到$key时,$default_value值生效。
@@ -190,80 +196,6 @@ array(2) {
190196
### array sg::all(void)
191197
结果与 [$GLOBALS](https://www.php.net/manual/zh/reserved.variables.globals.php) 相同
192198

193-
## 补充PHP预定义的超全局变量例子
194-
195-
### 获取PHP预定义的超全局变量
196-
197-
|传统的获取方式 (短)|新获取方式|
198-
| ------ | ------ |
199-
|$_SERVER['key']|sg::get('s.key')|
200-
|$_GET['key']|sg::get('g.key')|
201-
|$_POST['key']|sg::get('p.key')|
202-
|$_FILES['key']|sg::get('f.key')|
203-
|$_COOKIE['key']|sg::get('c.key')|
204-
|$_SESSION['key']|sg::get('n.key')|
205-
|$_REQUEST['key']|sg::get('r.key')|
206-
|$_ENV['key']|sg::get('e.key')|
207-
208-
|传统的获取方式 (长)|新获取方式|
209-
| ------ | ------ |
210-
|$_SERVER['key']['key1']['key2']|sg::get('s.key.key1.key2')|
211-
|$_GET['key']['key1']['key2']|sg::get('g.key.key1.key2')|
212-
|$_POST['key']['key1']['key2']|sg::get('p.key.key1.key2')|
213-
|$_FILES['key']['key1']['key2']|sg::get('f.key.key1.key2')|
214-
|$_COOKIE['key']['key1']['key2']|sg::get('c.key.key1.key2')|
215-
|$_SESSION['key']['key1']['key2']|sg::get('n.key.key1.key2')|
216-
|$_REQUEST['key']['key1']['key2']|sg::get('r.key.key1.key2')|
217-
|$_ENV['key']['key1']['key2']|sg::get('e.key.key1.key2')|
218-
219-
|传统的获取方式 (isset + trim)|新获取方式|
220-
| ------ | ------ |
221-
|$key = isset($_SERVER['key']) ? trim($_SERVER['key']) : null;|$key = sg::get('s.key');|
222-
|$key = isset($_GET['key']) ? trim($_GET['key']) : null;|$key = sg::get('g.key');|
223-
|$key = isset($_POST['key']) ? trim($_POST['key']) : null;|$key = sg::get('p.key');|
224-
|$key = isset($_FILES['key']) ? trim($_FILES['key']) : null;|$key = sg::get('f.key');|
225-
|$key = isset($_COOKIE['key']) ? trim($_COOKIE['key']) : null;|$key = sg::get('c.key');|
226-
|$key = isset($_SESSION['key']) ? trim($_SESSION['key']) : null;|$key = sg::get('n.key');|
227-
|$key = isset($_REQUEST['key']) ? trim($_REQUEST['key']) : null;|$key = sg::get('r.key');|
228-
|$key = isset($_ENV['key']) ? trim($_ENV['key']) : null;|$key = sg::get('e.key');|
229-
230-
|(PHP7) 传统的获取方式 (??)|新获取方式|
231-
| ------ | ------ |
232-
|$key = $_SERVER['key'] ?? null; $key = trim($key);|$key = sg::get('s.key');|
233-
|$key = $_GET['key'] ?? null; $key = trim($key);|$key = sg::get('g.key');|
234-
|$key = $_POST['key'] ?? null; $key = trim($key);|$key = sg::get('p.key');|
235-
|$key = $_FILES['key'] ?? null; $key = trim($key);|$key = sg::get('f.key');|
236-
|$key = $_COOKIE['key'] ?? null; $key = trim($key);|$key = sg::get('c.key');|
237-
|$key = $_SESSION['key'] ?? null; $key = trim($key);|$key = sg::get('n.key');|
238-
|$key = $_REQUEST['key'] ?? null; $key = trim($key);|$key = sg::get('r.key');|
239-
|$key = $_ENV['key'] ?? null; $key = trim($key);|$key = sg::get('e.key');|
240-
241-
通过以上的整理可以得出结论,如果PHP超全局变量数组维度越深,代码复杂度会直线上升。
242-
243-
使用SG,这些情况都变得很简单。更新、删除方式类同,这里就不一一举例了。
244-
245-
### sg.auto_trim
246-
247-
演示自动过滤前后空格的例子, 支持两种方式开启自动过滤。
248-
249-
为了获得最佳性能,如果满足trim条件, SG将改变原始值。避免每次取值时重复做trim操作。
250-
251-
```php
252-
<?php
253-
ini_set('sg.auto_trim', 1);
254-
function One() {
255-
var_dump(sg::set('test', ' test apple ')); // Auto-call PHP trim
256-
}
257-
function Two() {
258-
var_dump(sg::get('test'));
259-
}
260-
```
261-
以上例子输出的结果:
262-
```txt
263-
bool(true)
264-
string(10) "test apple"
265-
```
266-
267199
## License
268200
SG is open source software under the [PHP License v3.01](http://www.php.net/license/3_01.txt)
269201

0 commit comments

Comments
 (0)