Skip to content
Snippets Groups Projects
Verified Commit 9df2cd0d authored by Greg0ire's avatar Greg0ire
Browse files

Keep talking about the same class

People should feel less lost. We might introduce a new slide about UUIDs
later.
parent 35716c43
Branches
No related tags found
1 merge request!9Retours ngrekas
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment