listKeys и keys не показывают пустые каталоги

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

Я использую KnpGaufretteBundle со следующими настройками в моем config.yml

knp_gaufrette:
    adapters:
        images:
            local:
                directory:  "%kernel.root_dir%/../web/uploads/images"
    filesystems:
        images:
            adapter: images

Структура файла по указанному выше пути:

- images
  - test1.gif
  - test2.gif
  - sub_directory1
    - test3.gif
  - sub_directory2

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

array:2 [
  "keys" => array:3 [
    0 => "sub_directory1/test3.gif"
    1 => "test1.gif"
    2 => "test2.gif"
  ]
  "dirs" => array:1 [
    0 => "sub_directory1"
  ]
]

Теперь отображается пустой каталог. Есть ли способ получить эту информацию с помощью Gaufrette?


person Philip Bennison    schedule 05.06.2015    source источник


Ответы (1)


Я внимательно посмотрел на это, и я думаю, что у меня есть ответ на мой вопрос. Это связано с тем, что RecursiveDirectoryIterator не показывает пустые каталоги, когда он реализован так, как он реализован в локальном адаптере Gaufrette (как описано в ссылке ниже).

RecursiveDirectoryIterator() не показывает пустые каталоги

Я уверен, что это было сделано по какой-то причине, но это не совсем соответствует моим требованиям. Похоже, что на данный момент невозможно написать собственный адаптер, хотя, судя по всему, они находятся на полпути к реализации прохода компилятора для адаптеров.

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

person Philip Bennison    schedule 05.06.2015