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.