Вход Регистрация
Файл: vendor/symfony/uid/Factory/NameBasedUuidFactory.php
Строк: 48
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentUidFactory;

use 
SymfonyComponentUidUuid;
use 
SymfonyComponentUidUuidV3;
use 
SymfonyComponentUidUuidV5;

class 
NameBasedUuidFactory
{
    private 
string $class;
    private 
Uuid $namespace;

    public function 
__construct(string $classUuid $namespace)
    {
        
$this->class $class;
        
$this->namespace $namespace;
    }

    public function 
create(string $name): UuidV5|UuidV3
    
{
        switch (
$class $this->class) {
            case 
UuidV5::class: return Uuid::v5($this->namespace$name);
            case 
UuidV3::class: return Uuid::v3($this->namespace$name);
        }

        if (
is_subclass_of($classUuidV5::class)) {
            
$uuid Uuid::v5($this->namespace$name);
        } else {
            
$uuid Uuid::v3($this->namespace$name);
        }

        return new 
$class($uuid);
    }
}
Онлайн: 0
Реклама