Вход Регистрация
Файл: vendor/fakerphp/faker/src/Faker/Core/Version.php
Строк: 67
<?php

declare(strict_types=1);

namespace 
FakerCore;

use 
FakerExtensionHelper;
use 
FakerExtensionVersionExtension;
use 
FakerProviderDateTime;

final class 
Version implements VersionExtension
{
    
/**
     * @var string[]
     */
    
private $semverCommonPreReleaseIdentifiers = ['alpha''beta''rc'];

    
/**
     * Represents v2.0.0 of the semantic versioning: https://semver.org/spec/v2.0.0.html
     */
    
public function semver(bool $preRelease falsebool $build false): string
    
{
        return 
sprintf(
            
'%d.%d.%d%s%s',
            
mt_rand(09),
            
mt_rand(099),
            
mt_rand(099),
            
$preRelease && mt_rand(01) ? '-' $this->semverPreReleaseIdentifier() : '',
            
$build && mt_rand(01) ? '+' $this->semverBuildIdentifier() : '',
        );
    }

    
/**
     * Common pre-release identifier
     */
    
private function semverPreReleaseIdentifier(): string
    
{
        
$ident Helper::randomElement($this->semverCommonPreReleaseIdentifiers);

        if (!
mt_rand(01)) {
            return 
$ident;
        }

        return 
$ident '.' mt_rand(199);
    }

    
/**
     * Common random build identifier
     */
    
private function semverBuildIdentifier(): string
    
{
        if (
mt_rand(01)) {
            
// short git revision syntax: https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection
            
return substr(sha1(Helper::lexify('??????')), 07);
        }

        
// date syntax
        
return DateTime::date('YmdHis');
    }
}
Онлайн: 1
Реклама