mirror of
https://codeberg.org/vlw/php-globalsnapshot.git
synced 2025-09-13 20:03:41 +02:00
Change namespace from `victorwesterlund/globalsnapshot` to `vlw/globalsnapshot`. I will also deprecate the [existing Packagist listing](https://packagist.org/packages/victorwesterlund/globalsnapshot) in favor of a new one using the new namespace. Reviewed-on: https://codeberg.org/vlw/php-globalsnapshot/pulls/3 Co-authored-by: vlw <victor@vlw.se> Co-committed-by: vlw <victor@vlw.se>
50 lines
1.1 KiB
Markdown
50 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 that state at a later time.
|
|
|
|
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();
|
|
```
|