File manager - Edit - /home/opticamezl/www/newok/Converter.tar
Back
TimeConverterInterface.php 0000644 00000002447 15176527200 0011700 0 ustar 00 <?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; use Ramsey\Uuid\Exception\UnsatisfiedDependencyException; /** * 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 `hi` keys * @throws UnsatisfiedDependencyException if called on a 32-bit system and * `Moontoast\Math\BigNumber` is not present * @link http://tools.ietf.org/html/rfc4122#section-4.2.2 */ public function calculateTime($seconds, $microSeconds); } NumberConverterInterface.php 0000644 00000003263 15176527200 0012227 0 ustar 00 <?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; use Ramsey\Uuid\Exception\UnsatisfiedDependencyException; /** * 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 * @throws UnsatisfiedDependencyException if `Moontoast\Math\BigNumber` is not present */ 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 * @throws UnsatisfiedDependencyException if `Moontoast\Math\BigNumber` is not present */ public function toHex($integer); } Time/BigNumberTimeConverter.php 0000644 00000003465 15176527200 0012551 0 ustar 00 <?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 [ 'low' => substr($uuidTimeHex, 8), 'mid' => substr($uuidTimeHex, 4, 4), 'hi' => substr($uuidTimeHex, 0, 4), ]; } } Time/DegradedTimeConverter.php 0000644 00000002700 15176527200 0012365 0 ustar 00 <?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 if called on a 32-bit system and `Moontoast\Math\BigNumber` is not present */ public function calculateTime($seconds, $microSeconds) { throw new UnsatisfiedDependencyException( 'When calling ' . __METHOD__ . ' on a 32-bit system, ' . 'Moontoast\Math\BigNumber must be present.' ); } } Time/PhpTimeConverter.php 0000644 00000003357 15176527200 0011426 0 ustar 00 <?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 [ 'low' => sprintf('%08x', $uuidTime & 0xffffffff), 'mid' => sprintf('%04x', ($uuidTime >> 32) & 0xffff), 'hi' => sprintf('%04x', ($uuidTime >> 48) & 0x0fff), ]; } } Number/DegradedNumberConverter.php 0000644 00000003677 15176527200 0013267 0 ustar 00 <?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. ' ); } } Number/BigNumberConverter.php 0000644 00000003177 15176527200 0012264 0 ustar 00 <?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); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.23 | Generation time: 0 |
proxy
|
phpinfo
|
Settings