src/EventListener/VichUploaderListener.php line 30
<?phpnamespace App\EventListener;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Vich\UploaderBundle\Event\Event;use Vich\UploaderBundle\Event\Events;use Intervention\Image\ImageManager;use Symfony\Component\HttpKernel\KernelInterface;use Symfony\Component\HttpKernel\Event\ViewEvent;class VichUploaderListener implements EventSubscriberInterface{private $kernel;public function __construct(KernelInterface $kernel){$this->kernel = $kernel;}public static function getSubscribedEvents(){return [Events::POST_UPLOAD => 'postUpload',];}public function postUpload(Event $event){$mapping = $event->getMapping();$object = $event->getObject();// $entity = $event_n->getControllerResult();// var_dump( $entity->getId() ); die;// Додайте вашу логіку для включення року та місяця в шлях// $year = date('Y');// $month = date('m');// $documentRoot = $this->kernel->getProjectDir() . '/public';// $path = $documentRoot . $mapping->getUriPrefix() . "/$year/$month/";// $name = $mapping->getFileName($object);// $uri = $path . $name;// if ($this->isImage($uri)) {// $sizes = [90, 300, 700];// $manager = new ImageManager(// new \Intervention\Image\Drivers\Gd\Driver()// );// foreach($sizes as $s){// $image = $manager->read($uri);// $image->scale(width: $s);// $image->save($path . "{$s}_px_" . $name);// }// }}// private function isImage($file)// {// $allowedTypes = [// IMAGETYPE_GIF,// IMAGETYPE_JPEG,// IMAGETYPE_PNG,// IMAGETYPE_WEBP,// // Add more as needed// ];// $imageInfo = @getimagesize($file);// if ($imageInfo && in_array($imageInfo[2], $allowedTypes)) {// return true;// }// return false;// }}