Функционал валидации изображений является одним из самых продвинутых функционалов, определенных компонентом Validator. Он позволяет проверить максимальную / минимальную высоту и ширину изображений, максиальное / минимальное соотношение сторон изображений, будет ли формат книжным или альбомным и т.п.
Тем не менее, в нем не хватало очень важной функции: проверить, что изображение не повреждено и, следовательно, что оно будет корректно отображаться в вашем приложении. Вот почему Symfony 3.1 включает в себя новую detectCorrupted
опцию конфигурации и соответствующий corruptedMessage
:
use Symfony\Component\Validator\Constraints as Assert; class Product { /** * @Assert\Image( * detectCorrupted = true, * corruptedMessage = "Product photo is corrupted. Upload it again." * ) */ protected $photo;
Эта функция использует PHP функцию imagecreatefromstring(), для проверки, что представленное содержимое содержит корректное изображение. Поэтому, прежде чем использовать эту новую функцию проверки, убедитесь, что GD расширение установлено и подключено в вашей конфигурации PHP.
Как вы сами понимаете, эта опция замедляет проверку и потребляют больше памяти, но это вполне разумный компромисс, в том случае если есть такие изображения которые имеют решающее значение для вашего приложения.
Источник: http://symfony.com/blog/new-in-symfony-3-1-strict-image-validation