<?php declare( strict_types=1 ); namespace KadenceWP\KadenceBlocks; use InvalidArgumentException; use RuntimeException; final class Hasher { /** * The hashing algorithm to use. * * If on PHP8.1+, we'll use xxh128. * * @var string */ private $algo; /** * @param string $algo The hashing algorithm to use. * * @see \hash_algos() */ public function __construct( string $algo = 'md5' ) { $this->algo = $algo; } /** * Create a hash from different types of data. * * @param string|object|array|int|float $data The data to hash. * @param bool $binary Output in raw binary. * * @return string * * @throws InvalidArgumentException|RuntimeException */ public function hash( $data, bool $binary = false ): string { if ( $data === null ) { throw new InvalidArgumentException( '$data cannot be null.' ); } $data = is_scalar( $data ) ? (string) $data : (string) json_encode( $data ); if ( strlen( $data ) <= 0 ) { throw new RuntimeException( 'Cannot hash an empty data string. Perhaps JSON encoding failed?' ); } return hash( $this->algo, $data, $binary ); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Cache | Folder | 0755 |
|
|
Health | Folder | 0755 |
|
|
Image_Downloader | Folder | 0755 |
|
|
Notice | Folder | 0755 |
|
|
Shutdown | Folder | 0755 |
|
|
Traits | Folder | 0755 |
|
|
Uplink | Folder | 0755 |
|
|
App.php | File | 2.28 KB | 0644 |
|
Container.php | File | 1.23 KB | 0644 |
|
Hasher.php | File | 1.12 KB | 0644 |
|