Pressroom template verwijderd, website naar root van repo

This commit is contained in:
2020-03-22 15:30:52 +01:00
parent 2cb6a77425
commit f3d1c41e91
7620 changed files with 0 additions and 186900 deletions

View File

@@ -0,0 +1,54 @@
<?php
/**
* This file is part of the ramsey/uuid library
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
* @license http://opensource.org/licenses/MIT MIT
* @link https://benramsey.com/projects/ramsey-uuid/ Documentation
* @link https://packagist.org/packages/ramsey/uuid Packagist
* @link https://github.com/ramsey/uuid GitHub
*/
namespace Ramsey\Uuid\Converter\Number;
use Moontoast\Math\BigNumber;
use Ramsey\Uuid\Converter\NumberConverterInterface;
/**
* BigNumberConverter converts UUIDs from hexadecimal characters into
* moontoast/math `BigNumber` representations of integers and vice versa
*/
class BigNumberConverter implements NumberConverterInterface
{
/**
* Converts a hexadecimal number into a `Moontoast\Math\BigNumber` representation
*
* @param string $hex The hexadecimal string representation to convert
* @return BigNumber
*/
public function fromHex($hex)
{
$number = BigNumber::convertToBase10($hex, 16);
return new BigNumber($number);
}
/**
* Converts an integer or `Moontoast\Math\BigNumber` integer representation
* into a hexadecimal string representation
*
* @param int|string|BigNumber $integer An integer or `Moontoast\Math\BigNumber`
* @return string Hexadecimal string
*/
public function toHex($integer)
{
if (!$integer instanceof BigNumber) {
$integer = new BigNumber($integer);
}
return BigNumber::convertFromBase10($integer, 16);
}
}

View File

@@ -0,0 +1,58 @@
<?php
/**
* This file is part of the ramsey/uuid library
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
* @license http://opensource.org/licenses/MIT MIT
* @link https://benramsey.com/projects/ramsey-uuid/ Documentation
* @link https://packagist.org/packages/ramsey/uuid Packagist
* @link https://github.com/ramsey/uuid GitHub
*/
namespace Ramsey\Uuid\Converter\Number;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
use Ramsey\Uuid\Converter\NumberConverterInterface;
/**
* DegradedNumberConverter throws `UnsatisfiedDependencyException` exceptions
* if attempting to use number conversion functionality in an environment that
* does not support large integers (i.e. when moontoast/math is not available)
*/
class DegradedNumberConverter implements NumberConverterInterface
{
/**
* Throws an `UnsatisfiedDependencyException`
*
* @param string $hex The hexadecimal string representation to convert
* @return void
* @throws UnsatisfiedDependencyException
*/
public function fromHex($hex)
{
throw new UnsatisfiedDependencyException(
'Cannot call ' . __METHOD__ . ' without support for large '
. 'integers, since integer is an unsigned '
. '128-bit integer; Moontoast\Math\BigNumber is required.'
);
}
/**
* Throws an `UnsatisfiedDependencyException`
*
* @param mixed $integer An integer representation to convert
* @return void
* @throws UnsatisfiedDependencyException
*/
public function toHex($integer)
{
throw new UnsatisfiedDependencyException(
'Cannot call ' . __METHOD__ . ' without support for large '
. 'integers, since integer is an unsigned '
. '128-bit integer; Moontoast\Math\BigNumber is required. '
);
}
}

View File

@@ -0,0 +1,44 @@
<?php
/**
* This file is part of the ramsey/uuid library
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
* @license http://opensource.org/licenses/MIT MIT
* @link https://benramsey.com/projects/ramsey-uuid/ Documentation
* @link https://packagist.org/packages/ramsey/uuid Packagist
* @link https://github.com/ramsey/uuid GitHub
*/
namespace Ramsey\Uuid\Converter;
/**
* NumberConverterInterface converts UUIDs from hexadecimal characters into
* representations of integers and vice versa
*/
interface NumberConverterInterface
{
/**
* Converts a hexadecimal number into an integer representation of the number
*
* The integer representation returned may be an object or a string
* representation of the integer, depending on the implementation.
*
* @param string $hex The hexadecimal string representation to convert
* @return mixed
*/
public function fromHex($hex);
/**
* Converts an integer representation into a hexadecimal string representation
* of the number
*
* @param mixed $integer An integer representation to convert; this may be
* a true integer, a string integer, or a object representation that
* this converter can understand
* @return string Hexadecimal string
*/
public function toHex($integer);
}

View File

@@ -0,0 +1,58 @@
<?php
/**
* This file is part of the ramsey/uuid library
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
* @license http://opensource.org/licenses/MIT MIT
* @link https://benramsey.com/projects/ramsey-uuid/ Documentation
* @link https://packagist.org/packages/ramsey/uuid Packagist
* @link https://github.com/ramsey/uuid GitHub
*/
namespace Ramsey\Uuid\Converter\Time;
use Moontoast\Math\BigNumber;
use Ramsey\Uuid\Converter\TimeConverterInterface;
/**
* BigNumberTimeConverter uses the moontoast/math library's `BigNumber` to
* provide facilities for converting parts of time into representations that may
* be used in UUIDs
*/
class BigNumberTimeConverter implements TimeConverterInterface
{
/**
* Uses the provided seconds and micro-seconds to calculate the time_low,
* time_mid, and time_high fields used by RFC 4122 version 1 UUIDs
*
* @param string $seconds
* @param string $microSeconds
* @return string[] An array containing `low`, `mid`, and `high` keys
* @link http://tools.ietf.org/html/rfc4122#section-4.2.2
*/
public function calculateTime($seconds, $microSeconds)
{
$uuidTime = new BigNumber('0');
$sec = new BigNumber($seconds);
$sec->multiply('10000000');
$usec = new BigNumber($microSeconds);
$usec->multiply('10');
$uuidTime->add($sec)
->add($usec)
->add('122192928000000000');
$uuidTimeHex = sprintf('%016s', $uuidTime->convertToBase(16));
return array(
'low' => substr($uuidTimeHex, 8),
'mid' => substr($uuidTimeHex, 4, 4),
'hi' => substr($uuidTimeHex, 0, 4),
);
}
}

View File

@@ -0,0 +1,42 @@
<?php
/**
* This file is part of the ramsey/uuid library
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
* @license http://opensource.org/licenses/MIT MIT
* @link https://benramsey.com/projects/ramsey-uuid/ Documentation
* @link https://packagist.org/packages/ramsey/uuid Packagist
* @link https://github.com/ramsey/uuid GitHub
*/
namespace Ramsey\Uuid\Converter\Time;
use Ramsey\Uuid\Converter\TimeConverterInterface;
use Ramsey\Uuid\Exception\UnsatisfiedDependencyException;
/**
* DegradedTimeConverter throws `UnsatisfiedDependencyException` exceptions
* if attempting to use time conversion functionality in an environment that
* does not support large integers (i.e. when moontoast/math is not available)
*/
class DegradedTimeConverter implements TimeConverterInterface
{
/**
* Throws an `UnsatisfiedDependencyException`
*
* @param string $seconds
* @param string $microSeconds
* @return void
* @throws UnsatisfiedDependencyException
*/
public function calculateTime($seconds, $microSeconds)
{
throw new UnsatisfiedDependencyException(
'When calling ' . __METHOD__ . ' on a 32-bit system, '
. 'Moontoast\Math\BigNumber must be present.'
);
}
}

View File

@@ -0,0 +1,47 @@
<?php
/**
* This file is part of the ramsey/uuid library
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
* @license http://opensource.org/licenses/MIT MIT
* @link https://benramsey.com/projects/ramsey-uuid/ Documentation
* @link https://packagist.org/packages/ramsey/uuid Packagist
* @link https://github.com/ramsey/uuid GitHub
*/
namespace Ramsey\Uuid\Converter\Time;
use Ramsey\Uuid\Converter\TimeConverterInterface;
/**
* PhpTimeConverter uses built-in PHP functions and standard math operations
* available to the PHP programming language to provide facilities for
* converting parts of time into representations that may be used in UUIDs
*/
class PhpTimeConverter implements TimeConverterInterface
{
/**
* Uses the provided seconds and micro-seconds to calculate the time_low,
* time_mid, and time_high fields used by RFC 4122 version 1 UUIDs
*
* @param string $seconds
* @param string $microSeconds
* @return string[] An array containing `low`, `mid`, and `high` keys
* @link http://tools.ietf.org/html/rfc4122#section-4.2.2
*/
public function calculateTime($seconds, $microSeconds)
{
// 0x01b21dd213814000 is the number of 100-ns intervals between the
// UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00.
$uuidTime = ($seconds * 10000000) + ($microSeconds * 10) + 0x01b21dd213814000;
return array(
'low' => sprintf('%08x', $uuidTime & 0xffffffff),
'mid' => sprintf('%04x', ($uuidTime >> 32) & 0xffff),
'hi' => sprintf('%04x', ($uuidTime >> 48) & 0x0fff),
);
}
}

View File

@@ -0,0 +1,33 @@
<?php
/**
* This file is part of the ramsey/uuid library
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>
* @license http://opensource.org/licenses/MIT MIT
* @link https://benramsey.com/projects/ramsey-uuid/ Documentation
* @link https://packagist.org/packages/ramsey/uuid Packagist
* @link https://github.com/ramsey/uuid GitHub
*/
namespace Ramsey\Uuid\Converter;
/**
* TimeConverterInterface provides facilities for converting parts of time into
* representations that may be used in UUIDs
*/
interface TimeConverterInterface
{
/**
* Uses the provided seconds and micro-seconds to calculate the time_low,
* time_mid, and time_high fields used by RFC 4122 version 1 UUIDs
*
* @param string $seconds
* @param string $microSeconds
* @return string[] An array guaranteed to contain `low`, `mid`, and `high` keys
* @link http://tools.ietf.org/html/rfc4122#section-4.2.2
*/
public function calculateTime($seconds, $microSeconds);
}