mirror of
https://codeberg.org/vlw/php-globalsnapshot.git
synced 2025-09-13 20:03:41 +02:00
Reviewed-on: https://codeberg.org/vlw/php-globalsnapshot/pulls/4 Co-authored-by: vlw <victor@vlw.se> Co-committed-by: vlw <victor@vlw.se>
52 lines
1.1 KiB
Markdown
52 lines
1.1 KiB
Markdown
# php-globalsnapshot
|
|
|
|
Capture the current state of all [PHP superglobal variables](https://www.php.net/manual/en/language.variables.superglobals.php) - which can then be restored to the state of capture at a later time.
|
|
|
|
**Supports PHP 8.1+**
|
|
|
|
Example use:
|
|
```php
|
|
// Initial state
|
|
$_ENV["hello"] = "world"; // echo: "world"
|
|
|
|
// Capture initial state
|
|
$snapshot = (new GlobalSnapshot())->capture();
|
|
|
|
// Manipulate superglobals
|
|
$_ENV["hello"] .= " and mom!"; // echo: "world and mom"
|
|
|
|
// Restore initial state
|
|
$snapshot->restore();
|
|
|
|
// Initial state restored
|
|
echo $_ENV["hello"]; // echo: "world"
|
|
```
|
|
|
|
# Quickstart
|
|
|
|
1. Install with composer
|
|
```
|
|
composer install vlw/globalsnapshot
|
|
```
|
|
|
|
2. `use` in your project
|
|
```php
|
|
use vlw\GlobalSnapshot;
|
|
```
|
|
|
|
3. Capture current superglobals with `capture()`
|
|
```php
|
|
// Initialize a new GlobalSnapshot instance to store current values (one snapshot per instance)
|
|
$snapshot = new GlobalSnapshot();
|
|
|
|
// Capture current superglobal state
|
|
$snapshot->capture();
|
|
```
|
|
|
|
3. Restore superglobals with `restore()`
|
|
```php
|
|
// ... some other code
|
|
|
|
// Restore superglobals to state of `capture()`
|
|
$snapshot->restore();
|
|
```
|