diff --git a/index.md b/index.md index be65909edc745f3e32b6d2dd82ae9228267e1a7b..8fdbb025e82c9b850547bc436ec30414a23e3865 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