Skip to content

Commit c678667

Browse files
committed
Onthefly repo for ClientManager and TokenManager
This avoids a database connection to be established for every request Fixes issue #422
1 parent dd22826 commit c678667

File tree

2 files changed

+3
-25
lines changed

2 files changed

+3
-25
lines changed

Entity/ClientManager.php

+1-12
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
namespace FOS\OAuthServerBundle\Entity;
1515

1616
use Doctrine\ORM\EntityManagerInterface;
17-
use Doctrine\ORM\EntityRepository;
1817
use FOS\OAuthServerBundle\Model\ClientInterface;
1918
use FOS\OAuthServerBundle\Model\ClientManager as BaseClientManager;
2019

@@ -25,24 +24,14 @@ class ClientManager extends BaseClientManager
2524
*/
2625
protected $em;
2726

28-
/**
29-
* @var EntityRepository
30-
*/
31-
protected $repository;
32-
3327
/**
3428
* @var string
3529
*/
3630
protected $class;
3731

3832
public function __construct(EntityManagerInterface $em, $class)
3933
{
40-
// NOTE: bug in Doctrine, hinting EntityRepository|ObjectRepository when only EntityRepository is expected
41-
/** @var EntityRepository $repository */
42-
$repository = $em->getRepository($class);
43-
4434
$this->em = $em;
45-
$this->repository = $repository;
4635
$this->class = $class;
4736
}
4837

@@ -59,7 +48,7 @@ public function getClass()
5948
*/
6049
public function findClientBy(array $criteria)
6150
{
62-
return $this->repository->findOneBy($criteria);
51+
return $this->em->getRepository($this->class)->findOneBy($criteria);
6352
}
6453

6554
/**

Entity/TokenManager.php

+2-13
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
namespace FOS\OAuthServerBundle\Entity;
1515

1616
use Doctrine\ORM\EntityManagerInterface;
17-
use Doctrine\ORM\EntityRepository;
1817
use FOS\OAuthServerBundle\Model\TokenInterface;
1918
use FOS\OAuthServerBundle\Model\TokenManager as BaseTokenManager;
2019

@@ -25,24 +24,14 @@ class TokenManager extends BaseTokenManager
2524
*/
2625
protected $em;
2726

28-
/**
29-
* @var EntityRepository
30-
*/
31-
protected $repository;
32-
3327
/**
3428
* @var string
3529
*/
3630
protected $class;
3731

3832
public function __construct(EntityManagerInterface $em, $class)
3933
{
40-
// NOTE: bug in Doctrine, hinting EntityRepository|ObjectRepository when only EntityRepository is expected
41-
/** @var EntityRepository $repository */
42-
$repository = $em->getRepository($class);
43-
4434
$this->em = $em;
45-
$this->repository = $repository;
4635
$this->class = $class;
4736
}
4837

@@ -59,7 +48,7 @@ public function getClass()
5948
*/
6049
public function findTokenBy(array $criteria)
6150
{
62-
return $this->repository->findOneBy($criteria);
51+
return $this->em->getRepository($this->class)->findOneBy($criteria);
6352
}
6453

6554
/**
@@ -85,7 +74,7 @@ public function deleteToken(TokenInterface $token)
8574
*/
8675
public function deleteExpired()
8776
{
88-
$qb = $this->repository->createQueryBuilder('t');
77+
$qb = $this->em->getRepository($this->class)->createQueryBuilder('t');
8978
$qb
9079
->delete()
9180
->where('t.expiresAt < ?1')

0 commit comments

Comments
 (0)