NOTICE: Formerly known as
rhumsaa/uuid, The package and namespace names have changed to
ramsey/uuid is a PHP 5.4+ library for generating and working with RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).
This project adheres to a Contributor Code of Conduct. By participating in this project and its community, you are expected to uphold this code.
The intent of UUIDs is to enable distributed systems to uniquely identify information without significant central coordination. In this context the word unique should be taken to mean “practically unique” rather than “guaranteed unique”. Since the identifiers have a finite size, it is possible for two differing items to share the same identifier. The identifier size and generation process need to be selected so as to make this sufficiently improbable in practice. Anyone can create a UUID and use it to identify something with reasonable confidence that the same identifier will never be unintentionally created by anyone to identify something else. Information labeled with UUIDs can therefore be later combined into a single database without needing to resolve identifier (ID) conflicts.
Upgrading from 2.x to 3.x
While we have made significant internal changes to the library, we have made every effort to ensure a seamless upgrade path from the 2.x series of this library to 3.x.
One major breaking change is the transition from the
Rhumsaa root namespace to
Ramsey. In most cases, all you will need is to change the namespace to
Ramsey in your code, and everything will “just work.”
Here are full details on the breaking changes to the public API of this library:
- All namespace references of
Rhumsaahave changed to
Ramsey. Simply change the namespace to
Ramseyin your code and everything should work.
- The console application has moved to ramsey/uuid-console. If using the console functionality, use Composer to require
- The Doctrine field type mapping has moved to ramsey/uuid-doctrine. If using the Doctrine functionality, use Composer to require
What to do if you see a “rhumsaa/uuid is abandoned” message
When installing your project’s dependencies using Composer, you might see the following message:
Don’t panic. Simply execute the following commands with Composer:
After doing so, you will have the latest ramsey/uuid package in the 2.x series, and there will be no need to modify any code; the namespace in the 2.x series is still
Some methods in this library have requirements due to integer size restrictions on 32-bit and 64-bit builds of PHP. A 64-bit build of PHP and the Moontoast\Math library are recommended. However, this library is designed to work on 32-bit builds of PHP without Moontoast\Math, with some degraded functionality. Please check the API documentation for more information.
If a particular requirement is not present, then an
UnsatisfiedDependencyException is thrown, allowing one to catch a bad call in an environment where the call is not supported and gracefully degrade.
The latest class API documentation is available online.
This project uses ApiGen to generate this documentation. To generate the documentation on your own, install dev dependencies and run the following command from the root of the project:
This will generate documentation in the
See the cookbook on the wiki for more examples and approaches to specific use-cases.
Contributions are welcome! Please read CONTRIBUTING for details.