src/EventListener/PaymentMethodListener.php line 32

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\EventListener;
  4. use App\Files\Uploader\PaymentMethodUploader;
  5. use Sylius\Bundle\ResourceBundle\Event\ResourceControllerEvent;
  6. use Symfony\Component\EventDispatcher\GenericEvent;
  7. final class PaymentMethodListener
  8. {
  9.     private PaymentMethodUploader $paymentMethodUploader;
  10.     /**
  11.      * PaymentMethodListener constructor.
  12.      */
  13.     public function __construct(PaymentMethodUploader $paymentMethodUploader)
  14.     {
  15.         $this->paymentMethodUploader $paymentMethodUploader;
  16.     }
  17.     public function pre_create(ResourceControllerEvent $paymentMethod): void
  18.     {
  19.         $file $paymentMethod->getSubject()->getFile();
  20.         if ($file !== null) {
  21.             $pathFile $this->paymentMethodUploader->upload($file);
  22.             $paymentMethod->getSubject()->setFilePath($pathFile);
  23.         }
  24.     }
  25.     public function pre_update(ResourceControllerEvent $paymentMethod): void
  26.     {
  27.         $file $paymentMethod->getSubject()->getFile();
  28.         if ($file === null) {
  29.             return;
  30.         }
  31.         $pathFile $this->paymentMethodUploader->upload($file);
  32.         $paymentMethod->getSubject()->setFilePath($pathFile);
  33.     }
  34.     public function deleteFile(GenericEvent $event)
  35.     {
  36.         $file $event->getSubject();
  37.         if ($file) {
  38.             $oldFilePath $file->getFilePath();
  39.             if (!empty($oldFilePath)) {
  40.                 @unlink($oldFilePath);
  41.             }
  42.         }
  43.     }
  44. }