php-globalsnapshot/README.md
vlw 4bb9e4a08c chore: add PHP 8.1 readonly properties (#4)
Reviewed-on: https://codeberg.org/vlw/php-globalsnapshot/pulls/4
Co-authored-by: vlw <victor@vlw.se>
Co-committed-by: vlw <victor@vlw.se>
2024-11-23 09:23:42 +00:00

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();
```