From 9df2cd0de24d2af4634d23468e46942410ba22da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= <postmaster@greg0ire.fr> Date: Fri, 23 Mar 2018 22:28:31 +0100 Subject: [PATCH] Keep talking about the same class People should feel less lost. We might introduce a new slide about UUIDs later. --- index.md | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/index.md b/index.md index be65909..8fdbb02 100644 --- a/index.md +++ b/index.md @@ -207,15 +207,13 @@ Note: ## Les custom types ```php -class ArticleId extends Uuid { } -``` +use Doctrine\DBAL\Types\Type; -```php -final class ArticleIdType extends Type +final class ArticleContentType extends Type { - public function convertToPHPValue($value, AbstractPlatform $platform): ArticleId + public function convertToPHPValue($value, AbstractPlatform $platform): ArticleContent { - return new ArticleId($value); + return new ArticleContent($value); } public function convertToDatabaseValue($value, AbstractPlatform $platform): string @@ -225,7 +223,7 @@ final class ArticleIdType extends Type public function getName() { - return 'article_id'; + return 'article_content'; } } ``` @@ -235,7 +233,7 @@ final class ArticleIdType extends Type doctrine: dbal: types: - article_id: App\Infrastructure\Persistence\ArticleIdType + article_content: App\Infrastructure\Persistence\ArticleContentType ``` Note: @@ -243,12 +241,12 @@ 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. +> - `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 -- GitLab