9 UIDs
Hunter Perrin edited this page 2019-06-11 19:34:46 -07:00

UIDs, or unique IDs, provide an easier way for users to identify entities. UIDs are just sequential numbers and can be used for anything you like, not just entities. As opposed to a GUID, which is a unique ID for all entities, a UID is only unique for its own sequence. Therefore, they are more visually appealing to be used as an ID. (Think Sale #615 vs Sale #9007199254740991)

Nymph has the following methods for handling UIDs:

  • deleteUID - Delete a unique ID from the system.
  • getUID - Get the current value of a unique ID.
  • newUID - Increment or create a unique ID and return the new value.
  • renameUID - Rename a unique ID.
  • setUID - Set the value of a unique ID.
Using UIDs
use Nymph\Nymph as Nymph;

// Create a new entity.
$entity = Post::factory();

// Now give it a more friendly ID than GUID.
$entity->id = Nymph::newUID('Blog/Post');
$entity->save();
import { Nymph } from 'nymph-client';

let entity = new Post();

entity.id = await Nymph.newUID('Blog/Post');
await entity.$save();

// You probably don't want to allow UIDs from the client
// though. Then a malicious user can reset the UID. Instead,
// from the server side, you can create a UID when the
// entity is saved.

⚠️ Caution: If a UID is incremented, and the entity you're using it on can't be saved, there is no safe way to decrement the UID back to its previous value.