ramsey/uuid offers a variety of ways to modify the standard behavior of the library through dependency injection. Using FeatureSet, UuidFactory, and Uuid::setFactory(), you are able to replace just about any builder, codec, converter, generator, provider, and more.

Ordered-time Codec

The ordered-time codec exists to rearrange the bytes of a version 1, Gregorian time UUID so that the timestamp portion of the UUID is monotonically increasing. To learn more, see Ordered-time Codec.

Timestamp-first COMB Codec

The timestamp-first COMB codec replaces part of a version 4, random UUID with a timestamp, so that the UUID becomes monotonically increasing. To learn more, see Timestamp-first COMB Codec.

Using a Custom Calculator

It’s possible to replace the default calculator ramsey/uuid uses. If your requirements require a different solution for making calculations, see Using a Custom Calculator.

Using a Custom Validator

If your requirements require a different level of validation or a different UUID format, you may replace the default validator. See Using a Custom Validator, to learn more.

Replace the Default Factory

Not only are you able to inject alternate builders, codecs, etc. into the factory and use the factory to generate UUIDs, you may also replace the global, static factory used by the static methods on the Uuid class. To find out how, see Replace the Default Factory.