Я загрузил некоторые изображения, используя сонату-медиа-пакет, как это предлагается здесь.
$media = new Media; $media->setBinaryContent($file->getRealPath()); $media->setContext('myContext'); $media->setProviderName('sonata.media.provider.image'); $mediaManager->save($media);
Предыдущий код правильно создает носитель для всех файлов (в соответствии с конфигурацией контекста) и реестром db. Теперь, что я сделал, чтобы удалить носитель, вызывается вот так:
$media = $mediaManager->findOneBy(array('id' => $id)); $mediaManager->delete($media)
Он корректно удаляет мультимедийные данные из базы данных, но не из сконфигурированной файловой системы, все еще есть некоторые изображения, связанные с загруженным носителем. Я планирую использовать файловую систему S3, поэтому мне нужно удалить все с той же структурой
самая важная из моей конфигурации сонаты (с использованием предложенного) выглядит следующим образом:
sonata_media: default_context: default db_driver: doctrine_orm class: media: MyApp\MediaBundle\Entity\Media gallery: MyApp\MediaBundle\Entity\Gallery gallery_has_media: MyApp\MediaBundle\Entity\GalleryHasMedia contexts: default: providers: - sonata.media.provider.youtube - sonata.media.provider.image - sonata.media.provider.file formats: small: { width: 200, quality: 77} myContext: providers: - sonata.media.provider.image formats: normal: { width: 350, quality: 75} tmb: { width: 100, quality: 75} filesystem: local: directory: %kernel.root_dir%/../web/uploads/media create: false
Заранее спасибо.