1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
.. _quickstart:
===============
Getting Started
===============
Requirements
############
ramsey/uuid |version| requires the following:
* PHP 8.0+
* `ext-json <https://www.php.net/manual/en/book.json.php>`_
The JSON extension is normally enabled by default, but it is possible to disable
it. Other required extensions include
`PCRE <https://www.php.net/manual/en/book.pcre.php>`_
and `SPL <https://www.php.net/manual/en/book.spl.php>`_. These standard
extensions cannot be disabled without patching PHP's build system and/or C
sources.
ramsey/uuid recommends installing/enabling the following extensions. While not
required, these extensions improve the performance of ramsey/uuid.
* `ext-gmp <https://www.php.net/manual/en/book.gmp.php>`_
* `ext-bcmath <https://www.php.net/manual/en/book.bc.php>`_
Install With Composer
#####################
The only supported installation method for ramsey/uuid is
`Composer <https://getcomposer.org>`_. Use the following command to add
ramsey/uuid to your project dependencies:
.. code-block:: bash
composer require ramsey/uuid
Using ramsey/uuid
#################
After installing ramsey/uuid, the quickest way to get up-and-running is to use
the static generation methods.
.. code-block:: php
use Ramsey\Uuid\Uuid;
$uuid = Uuid::uuid4();
printf(
"UUID: %s\nVersion: %d\n",
$uuid->toString(),
$uuid->getFields()->getVersion()
);
This will return an instance of :php:class:`Ramsey\\Uuid\\Rfc4122\\UuidV4`.
.. tip::
.. rubric:: Use the Interfaces
Feel free to use ``instanceof`` to check the specific instance types of
UUIDs. However, when using type hints, it's best to use the interfaces.
The most lenient interface is :php:interface:`Ramsey\\Uuid\\UuidInterface`,
while :php:interface:`Ramsey\\Uuid\\Rfc4122\\UuidInterface` ensures the
UUIDs you're using conform to the `RFC 4122`_ standard. If you're not sure
which one to use, start with the stricter
:php:interface:`Rfc4122\\UuidInterface <Ramsey\\Uuid\\Rfc4122\\UuidInterface>`.
ramsey/uuid provides a number of helpful static methods that help you work with
and generate most types of UUIDs, without any special customization of the
library.
.. list-table::
:widths: 25 75
:align: center
:header-rows: 1
* - Method
- Description
* - :php:meth:`Uuid::uuid1() <Ramsey\\Uuid\\Uuid::uuid1>`
- This generates a :ref:`rfc4122.version1` UUID.
* - :php:meth:`Uuid::uuid2() <Ramsey\\Uuid\\Uuid::uuid2>`
- This generates a :ref:`rfc4122.version2` UUID.
* - :php:meth:`Uuid::uuid3() <Ramsey\\Uuid\\Uuid::uuid3>`
- This generates a :ref:`rfc4122.version3` UUID.
* - :php:meth:`Uuid::uuid4() <Ramsey\\Uuid\\Uuid::uuid4>`
- This generates a :ref:`rfc4122.version4` UUID.
* - :php:meth:`Uuid::uuid5() <Ramsey\\Uuid\\Uuid::uuid5>`
- This generates a :ref:`rfc4122.version5` UUID.
* - :php:meth:`Uuid::uuid6() <Ramsey\\Uuid\\Uuid::uuid6>`
- This generates a :ref:`rfc4122.version6` UUID.
* - :php:meth:`Uuid::uuid7() <Ramsey\\Uuid\\Uuid::uuid7>`
- This generates a :ref:`rfc4122.version7` UUID.
* - :php:meth:`Uuid::isValid() <Ramsey\\Uuid\\Uuid::isValid>`
- Checks whether a string is a valid UUID.
* - :php:meth:`Uuid::fromString() <Ramsey\\Uuid\\Uuid::fromString>`
- Creates a UUID instance from a string UUID.
* - :php:meth:`Uuid::fromBytes() <Ramsey\\Uuid\\Uuid::fromBytes>`
- Creates a UUID instance from a 16-byte string.
* - :php:meth:`Uuid::fromInteger() <Ramsey\\Uuid\\Uuid::fromInteger>`
- Creates a UUID instance from a string integer.
* - :php:meth:`Uuid::fromDateTime() <Ramsey\\Uuid\\Uuid::fromDateTime>`
- Creates a version 1 UUID instance from a PHP `DateTimeInterface`_.
.. _RFC 4122: https://tools.ietf.org/html/rfc4122
.. _DateTimeInterface: https://www.php.net/datetimeinterface
|