API с сотнями форм — нехватка памяти

В моем проекте Symfony 2.6 у меня есть API для мобильного приложения, которое дает возможность добавлять и обрабатывать большое количество данных.

Основная форма состоит из коллекции других форм. Каждая из дочерних форм имеет одинаковые вещи, всего 4. Итак, структура выглядит так:

Мастер форма имеет Child1 форма, которая имеет Child2 формы, которая имеет Child3 формы.

Объект имеет, например, 2 000 объектов для Child3, 8 Child2 сущностей, 3 Child1 сущности и одна главная сущность.

Много раз я получаю эту ошибку при сохранении данных:

AH01071: получено сообщение об ошибке ‘PHP: Неустранимая ошибка PHP: допустимый объем памяти 536870912 байт исчерпан (попытка выделить 88 байт) в /vendor/symfony/symfony/src/Symfony/Component/OptionsResolver/OptionsResolver.php в строке 755 \ n ‘

Я просто добавил типы для всех элементов формы, например:

$buider->add('startLangutude', 'text')

Также я выключил SQLLogger. Есть ли какое-нибудь другое решение, которое могло бы помочь здесь? Есть ли у вас какой-то опыт и можете поделиться?

1

Решение

Я бы предложил Вам отказаться Form подход и использовать простой json_decode чтобы получить массив (это дешевле ресурсов по сравнению с объектом), а затем создать кучу ArrayToEntityTransformer с помощью StrategyPattern, В каждой стратегии Вы можете проверить данный массив перед процессом создания объекта. Если объект действителен, используйте доктрина пакетной обработки рекомендации по экономии памяти путем очистки EntityManager после каждой партии.

Удачи.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]