Bonjour,
J'utilise VichUploader pour mon app, et j'ai une page ou l'utilisateur doit renseigner 8 photos qu'il prend avec son iPhone mais l'upload est trèèèèès long.
J'ai VichUploader pour ma gestion d'image
Et j'ai Messenger de symfony déjà setup avec un serveur qui me permet d'envoyer n'importe quelles classes de service de manière Asynchrone.
if($step == 2) {
// Create form upload img
$form = $this->createForm(ContractVehiclePictureType::class, $contract->getResource());
$form->handleRequest($request);
// Submit
//TODO: Optimise delay of upload
// C'est ici que j'ai les 8 images qui send en même temps
if($form->isSubmitted() && $form->isValid()) {
//Update date
$contract->setUpdateDate(new DateTime());
// To DB
$this->em->flush();
//Incrementation of step vehicle
return $this->redirectToRoute('admin_contract_start', [
'location' => $contract->getLocation()->getId(),
'contract' => $contract->getId(),
'step' => 3
]);
}
// Vehicle view render
return $this->render('contract/start/new.html.twig', [
'step' => $step,
'contract' => $contract,
'form' => $form->createView()
]);
}
Mon Enqueue Method
public function enqueue(
string $service,
string $method,
array $params = [],
DateTimeInterface $date = null
): void
{
$stamps = [];
// Le service doit être appelé avec un délai
if(null !== $date) {
$delay = 1000 * ($date->getTimestamp() - time());
if($delay > 0) {
$stamps[] = new DelayStamp($delay);
}
}
$this->bus->dispatch(new ServiceMethodMessage($service, $method, $params), $stamps);
}
Ce que je veux
C'est un système l'étape lors de l'inscription donc je souhaite que l'upload ce fasse Asynchrone pour que l'utilisateur ne soit pas ralenti.