Matt Trask has put together a new post spotlighting a handy library that's widely used across the PHP ecosystem for generating UUIDs: ramsey/uuid.
Welcome to the first installment in my 2113918230981 part series, "Better know a Package!". Tonight's package: the famous/infamous Uuid package that that taught us all what Ramsey is in Scottish, Rhumsaa. Created to give PHP a library to generate Universal Unique Identifiers, this library has been a stallwort in the community. Ben Ramsey created it first under the Rhumsaa namesapce before moving it to the Ramsey namespace, saving us all from learning more Scottish then we needed to ever learn.
[...] A UUID, or Universally Unique Identifier, will generate a 128 bite unique key in different series based on the version you asked for. RFC-4122 dictates how Uuids should be generated, and recommends 4 types.
Matt then goes on to describe each of the different UUID types and provides some code examples as illustration:
- Version 1: Time and MAC addressed based Uuid
- Version 2: DCE-based
- Version 3: UUIDs based on a namespace and then it is MD5 hashed
- Version 4: Random generation (based on the output of random_bytes
He also includes examples of the UUIDs output by each method (not much difference there as the structure of the resulting UUID is all the same).