PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.11
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.11
1.10.21 1.10.20 1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 All 165 releases
woocommerce-pos / vendor / ramsey / uuid / src / Generator / PeclUuidNameGenerator.php

PeclUuidNameGenerator.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.11, at vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php

55 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * This file is part of the ramsey/uuid library
5 *
6 * For the full copyright and license information, please view the LICENSE
7 * file that was distributed with this source code.
8 *
9 * @copyright Copyright (c) Ben Ramsey <[email protected]>
10 * @license http://opensource.org/licenses/MIT MIT
11 */
12
13 declare(strict_types=1);
14
15 namespace Ramsey\Uuid\Generator;
16
17 use Ramsey\Uuid\Exception\NameException;
18 use Ramsey\Uuid\UuidInterface;
19
20 use function sprintf;
21 use function uuid_generate_md5;
22 use function uuid_generate_sha1;
23 use function uuid_parse;
24
25 /**
26 * PeclUuidNameGenerator generates strings of binary data from a namespace and a
27 * name, using ext-uuid
28 *
29 * @link https://pecl.php.net/package/uuid ext-uuid
30 */
31 class PeclUuidNameGenerator implements NameGeneratorInterface
32 {
33 /** @psalm-pure */
34 public function generate(UuidInterface $ns, string $name, string $hashAlgorithm): string
35 {
36 switch ($hashAlgorithm) {
37 case 'md5':
38 $uuid = uuid_generate_md5($ns->toString(), $name);
39
40 break;
41 case 'sha1':
42 $uuid = uuid_generate_sha1($ns->toString(), $name);
43
44 break;
45 default:
46 throw new NameException(sprintf(
47 'Unable to hash namespace and name with algorithm \'%s\'',
48 $hashAlgorithm
49 ));
50 }
51
52 return uuid_parse($uuid);
53 }
54 }
55