【发布时间】:2015-03-05 10:12:05
【问题描述】:
拥有这个实体:
/**
* @ORM\Entity
* @ORM\Table(name="nomencladores.pais", schema="nomencladores")
* @ORM\Entity(repositoryClass="AppBundle\Entity\Repository\PaisRepository")
* @UniqueEntity(fields={"nombre"}, message="El pais ya existe en nuestra base de datos")
*/
class Pais
{
use IdentifierAutogeneratedEntityTrait;
use NamedEntityTrait;
use ActiveEntityTrait;
}
还有这个存储库:
class PaisRepository extends EntityRepository
{
public function getPaises()
{
$qb = $this->createQueryBuilder('pais');
$query = $qb->getQuery();
$query->useResultCache(true, 3600, 'paises_cache');
return $query->getResult();
}
}
并在我的控制器上执行此调用:
/**
* @Route("/paises", name="paises")
* @Method("GET")
*/
public function getPaisAction()
{
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('AppBundle:Pais')->getPaises();
$response['message'] = "";
$response['entities'] = [];
if (!$entities) {
$response['message'] = "No se encontraron países";
}
foreach ($entities as $pais) {
$paises = array();
$paises['id'] = $pais->getId();
$paises['text'] = $pais->getNombre();
$response['entities'][] = $paises;
}
return new JsonResponse($response);
}
在config_prod.yml 文件中拥有这个:
doctrine:
orm:
metadata_cache_driver: apc
result_cache_driver: apc
query_cache_driver: apc
我如何知道我的应用是在使用缓存结果还是一直在执行数据库查询?我正在查看 Symfony2 工具栏(因为我正在开发环境中执行测试),并且一直看到对 paises 表的查询,这让我认为没有使用缓存。
【问题讨论】:
标签: php symfony caching memcached apc