From cc94311cdedc106f32bc240bfa6236ac0179a333 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr>
Date: Thu, 3 Dec 2015 09:28:01 +0100
Subject: [PATCH] =?UTF-8?q?Ajoute=20d'une=20m=C3=A9thode=20pour=20comparer?=
 =?UTF-8?q?=20rapidement=20le=20contenu=20de=20deux=20fichiers.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Entity/UploadedFile.php         | 10 ++++++++++
 Model/UploadedFileInterface.php | 10 ++++++++++
 2 files changed, 20 insertions(+)

diff --git a/Entity/UploadedFile.php b/Entity/UploadedFile.php
index 8b9df5ea..1a8c0ee9 100644
--- a/Entity/UploadedFile.php
+++ b/Entity/UploadedFile.php
@@ -687,4 +687,14 @@ class UploadedFile implements UploadedFileInterface
         $this->actualPath = $this->path;
     }
 
+    /**
+     * {@inheritdoc}
+     *
+     * Ne compare que la taille et la somme de contrôle : il existe une très faible probabilité que deux fichiers de
+     * même taille et même checksum soient différents.
+     */
+    public function hasSameContent(UploadedFileInterface $other)
+    {
+        return $other->getSize() === $this->getSize() && $other->getChecksum() === $this->getChecksum();
+    }
 }
diff --git a/Model/UploadedFileInterface.php b/Model/UploadedFileInterface.php
index 324b9708..ce2f423a 100644
--- a/Model/UploadedFileInterface.php
+++ b/Model/UploadedFileInterface.php
@@ -381,4 +381,14 @@ interface UploadedFileInterface
      * @internal
      */
     public function toArray();
+
+    /**
+     * Détermine si ce fichier a le même contenu qu'un autre fichier.
+     *
+     * @param UploadedFileInterface $other
+     * @return bool True si les deux fichiers ont le même contenu.
+     *
+     * @api
+     */
+    public function hasSameContent(UploadedFileInterface $other);
 }
-- 
GitLab