Удаление осиротевших объектов по команде clear-orphans

Я использую OneUp Uploader Bundle вместе с приютом, и я не уверен, как обработать очистку сущностей (созданных слушателем) после очистки файла командой clear-orphans - как это обычно обрабатывается?

Я хотел бы видеть событие, запускаемое для каждого файла, который очищен (передает имя файла и отображение), но ничего не нашел (при условии, что диспетчер событий доступен для команды).

1 ответ

Решение

Идея создания приюта в OneupUploaderBundle заключается в том, что вы не загрязняете свою папку загрузки файлами, которые не принадлежат ни одной сущности. Это означает, что если вы используете загруженные файлы в своих организациях, вы должны переместить их из приюта. Если вы настроили отображение для использования приюта, все загруженные файлы будут сохранены в отдельной папке после загрузки.

Ссылаясь на документацию:

Они будут перемещены в правильное место, как только вы активируете uploadFiles Способ хранения.

Это означает, что вы можете переместить логику из прослушивателя событий (который, тем не менее, будет называться), но переместить ее в контроллер, где вы хотите, наконец, загрузить и сохранить файлы в приюте.

// src/Acme/Controller/AcmeController.php

class AcmeController extends Controller
{
    public function storeAction()
    {

        // ...
        if ($form->isValid()) {
            $orphanageManager = $this->get('oneup_uploader.orphanage_manager')->get('gallery');

            // upload all files to the configured storage
            $files = $manager->uploadFiles();

            // your own logic to apply the files to the entity
            // ...
        }

    }
}

Обязательно используйте детский дом только в том случае, если это действительно необходимо. У него есть некоторые недостатки.

Другие вопросы по тегам