diff --git a/reference/ds/ds/hashable/equals.xml b/reference/ds/ds/hashable/equals.xml
new file mode 100644
index 0000000000..290dc556d9
--- /dev/null
+++ b/reference/ds/ds/hashable/equals.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+ Ds\Hashable::equals
+ Détermine si un objet est égal à l'instance actuelle
+
+
+
+ &reftitle.description;
+
+ abstract public boolDs\Hashable::equals
+ objectobj
+
+
+ Détermine si un autre objet est égal à l'instance actuelle.
+
+
+
+ Cette méthode permet d'utiliser des objets comme clés dans des structures telles que
+ Ds\Map et Ds\Set, ou toute autre
+ structure de recherche qui respecte cette interface.
+
+
+
+
+ Il est garanti que obj est une instance de la même classe.
+
+
+
+
+
+ Il est important que les objets qui sont égaux aient également la même valeur de hachage.
+ Voir Ds\Hashable::hash.
+
+
+
+
+
+
+ &reftitle.parameters;
+
+
+ obj
+
+
+ L'objet à comparer à l'instance actuelle, qui est toujours une instance de
+ la même classe.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &true; si les objets sont égaux, sinon &false;.
+
+
+
+
+
+
+
diff --git a/reference/ds/ds/hashable/hash.xml b/reference/ds/ds/hashable/hash.xml
new file mode 100644
index 0000000000..54a10a2241
--- /dev/null
+++ b/reference/ds/ds/hashable/hash.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+ Ds\Hashable::hash
+ Renvoie une valeur scalaire à utiliser comme valeur de hachage
+
+
+
+ &reftitle.description;
+
+ abstract public mixedDs\Hashable::hash
+
+
+
+ Renvoie une valeur scalaire à utiliser comme valeur de hachage des objets.
+
+
+ Tant que la valeur de hachage ne définit pas l'égalité, tous les objets qui sont égaux selon Ds\Hashable::equals
+ doivent avoir la même valeur de hachage. Les valeurs de hachage des objets égaux n'ont pas à être uniques, par exemple
+ vous pourriez simplement retourner &true; pour tous les objets et rien ne se casserait - la seule
+ implication serait que les tables de hachage se transformeraient en listes chaînées car tous
+ vos objets seront hachés dans le même seau. Il est donc très important
+ que vous choisissiez une bonne valeur de hachage, telle qu'un ID ou une adresse e-mail.
+
+
+
+ Cette méthode permet d'utiliser des objets comme clés dans des structures telles que
+ Ds\Map et Ds\Set, ou toute autre
+ structure de recherche qui respecte cette interface.
+
+
+
+
+ Ne choisissez pas une valeur qui pourrait changer dans l'objet, comme une propriété publique.
+ Les recherches dans les tables de hachage échoueraient car le hachage a changé.
+
+
+
+
+
+ Tous les objets qui sont égaux doivent avoir la même valeur de hachage.
+
+
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+ Une valeur scalaire à utiliser comme valeur de hachage de cet objet.
+
+
+
+
+ &reftitle.examples;
+
+ Exemple de Ds\Hashable::hash
+
+name = $name;
+ $this->email = $email;
+ }
+
+ /**
+ * Doit renvoyer la même valeur pour tous les objets égaux, mais n'a pas à
+ * être unique. Cette valeur ne sera pas utilisée pour déterminer l'égalité.
+ */
+ public function hash()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Détermine l'égalité, généralement lors d'une recherche dans une table de hachage pour déterminer
+ * si la clé du seau correspond à la clé de recherche. Le hachage doit être égal si
+ * les objets sont égaux, sinon cette détermination ne serait pas atteinte.
+ */
+ public function equals($obj): bool
+ {
+ return $this->name === $obj->name
+ && $this->email === $obj->email;
+ }
+}
+?>
+]]>
+
+
+
+
+
+
+
+