diff --git a/index.md b/index.md index a1fc94235fa0b8042f85d972a9dd52dcf0576a83..90bf3fd20a73431c488af69e94e93ebbaad51538 100644 --- a/index.md +++ b/index.md @@ -154,6 +154,19 @@ Note: Doctrine, Doctrine utilise de la réflection ou de la désérialisation pour hydrater les entités. +--- +## Les UUID + +- Universally unique +- Indevinables +- Ne nécessitent pas de base de données +- `ramsey/uuid` à la rescousse + +Notes: +- Idéalement, prendre une clé naturelle. +- Doctrine a un type `guid` qui correspond au type `uuid` dans Postgres, + jetez-y un oeil. + --- ## Les value objects @@ -241,12 +254,6 @@ Note: l'hydratation. Si ça crashe, c'est qu'il manque des migrations. - La méthode `getName()` fait doublon avec le nom utilisé lors de l'enregistrement du type dans le registre de type, et disparaître dès Doctrine 3 -> - `ArticleId` devrait être une clé naturelle ou un UUID, le principal c'est de -> pas avoir besoin de demander à la DB de le calculer, ça évite des attaques -> pour cause d'ID devinables, et ça évite d'exposer le nombre d'entités présentes -> dans une table. Ça évite aussi des collisions lorsque vous migrez des données -> d'une base vers une autre, et que la nouvelle base peut elle aussi être -> alimentée directement. --- ## Les embeddables