Как я могу улучшить производительность сериализатора Symfony? - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь получить переменную json из моей базы данных:

$table = $this->em->getRepository('App\\Entity\\Data')->findAll();
$encoders = [new JsonEncoder()]; 
$normalizers = [new DateTimeNormalizer(array('datetime_format' => 'd.m.Y')), new ObjectNormalizer($classMetadataFactory)];
$serializer = new Serializer($normalizers, $encoders);

$groupsArray = $serializerGroups->getSerializerGroups($slug);
    $groups = $groupsArray['groups'];
    if( $groups != null) {
      $context['groups'] = $groups;
    }


$output = $serializer->serialize($table, 'json', $context);

dump($output);

Страница загружается очень долго, пока я не увижу результат вывода. Как я могу сделать это быстрее?

1 Ответ

0 голосов
/ 04 февраля 2020

Это действительно зависит от того, какой вывод вам нужен, он занимает слишком много времени, потому что, по моему мнению, у вас есть вложенный атрибут в вашей сущности DATA для ускорения использования групп сериализации https://symfony.com/doc/current/components/serializer.html#component -serializer-attribute-groups-annotations и для более быстрого вывода избегайте использования findAll , вы можете использовать свой репозиторий и выбирать нужные данные , и, наконец, вы можете использовать компонент кэша для хранения выходного файла в течение определенного периода времени

...