mirror of
https://github.com/ramsey/uuid.git
synced 2026-06-15 16:07:55 +03:00
50 lines
1.5 KiB
ReStructuredText
50 lines
1.5 KiB
ReStructuredText
.. _nonstandard.other:
|
|
|
|
=======================
|
|
Other Nonstandard UUIDs
|
|
=======================
|
|
|
|
Sometimes, you might encounter a string that looks like a UUID but doesn't
|
|
follow the `RFC 4122`_ specification. Take this string, for example:
|
|
|
|
.. code-block:: text
|
|
|
|
d95959bc-2ff5-43eb-fccd-14883ba8f174
|
|
|
|
At a glance, this looks like a valid UUID, but the variant bits don't match RFC
|
|
4122. Instead of throwing a validation exception, ramsey/uuid will assume this
|
|
is a UUID, since it fits the format and has 128 bits, but it will represent it
|
|
as a :php:class:`Ramsey\\Uuid\\Nonstandard\\Uuid`.
|
|
|
|
.. code-block:: php
|
|
:caption: Create an instance of Nonstandard\\Uuid from a non-RFC 4122 UUID
|
|
|
|
use Ramsey\Uuid\Uuid;
|
|
|
|
$uuid = Uuid::fromString('d95959bc-2ff5-43eb-fccd-14883ba8f174');
|
|
|
|
printf(
|
|
"Class: %s\nUUID: %s\nVersion: %d\nVariant: %s\n",
|
|
get_class($uuid),
|
|
$uuid->toString(),
|
|
$uuid->getFields()->getVersion(),
|
|
$uuid->getFields()->getVariant()
|
|
);
|
|
|
|
This will create a Nonstandard\\Uuid from the given string and print out a few
|
|
details about it. It will look something like this:
|
|
|
|
.. code-block:: text
|
|
|
|
Class: Ramsey\Uuid\Nonstandard\Uuid
|
|
UUID: d95959bc-2ff5-43eb-fccd-14883ba8f174
|
|
Version: 0
|
|
Variant: 7
|
|
|
|
Note that the version is 0. Since the variant is 7, and there is no
|
|
formal specification for this variant of UUID, ramsey/uuid has no way of knowing
|
|
what type of UUID this is.
|
|
|
|
|
|
.. _RFC 4122: https://tools.ietf.org/html/rfc4122
|