use Pagerfanta\Pagerfanta;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
+use Wallabag\CoreBundle\Helper\UrlHasher;
class EntryRepository extends EntityRepository
{
public function findByUrlAndUserId($url, $userId)
{
return $this->findByHashedUrlAndUserId(
- hash('sha1', $url), // XXX: the hash logic would better be in a separate util to avoid duplication with GenerateUrlHashesCommand::generateHashedUrls
+ UrlHasher::hashUrl($url),
$userId);
}
return $this->find($randomId);
}
+ /**
+ * Inject a UrlHasher.
+ *
+ * @param UrlHasher $hasher
+ */
+ public function setUrlHasher(UrlHasher $hasher)
+ {
+ $this->urlHasher = $hasher;
+ }
+
+ /**
+ * Get the UrlHasher, or create a default one if not injected.
+ *
+ * XXX: the default uses the default hash algorithm
+ *
+ * @return UrlHasher
+ */
+ protected function getUrlHasher()
+ {
+ if (!isset($this->urlHasher)) {
+ $this->setUrlHasher(new UrlHasher());
+ }
+
+ return $this->urlHasher;
+ }
+
/**
* Return a query builder to be used by other getBuilderFor* method.
*