Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте!
Версия Laravel: "laravel/framework": "5.4.*"
Метод подключения PHP: FPM
OS: Debian 3.16.43-2+deb8u2
Работаю по: CLI
Дело в следующем:
Имеется класс Storage, для работы с файловой системой, я работаю согласно статье этой.
Пытаюсь выбрать все дирректории Storage::disk('ftp')->allDirectories($directory); однако в результате получаю только первый уровень директорий, как если бы я сделал Storage::disk('ftp')->directories($directory);
Также пробывал работать с Storage::allFiles($directory); результат такой же, выбирается только из указаной директории рекурсии нет.
Рекурсии нет только при работе с файловой системой по ftp, при работе в локальной среде вышепредставленные функции отрабатывают славно.
В документации сказано: Интеграция Flysystem отлично работает с FTP, однако не срабатывает.
Разъесните пожалуйста что к чему по данному вопросу, очень нужен совет.
Изменено ZGmae5dF (09.08.2017 11:08:41)
Не в сети
Что даже мыслей ни у кого нет?
Не в сети
Покопался немного внутри. Там что то мутное.
Есть настройка recurseManually которая должна из конфига стандартного читаться. Не читается!
Установил ее насильно в true. ftp вернул главную папку и подпапки но у подпапок нет родителя.
Т.е. получился обычный список.
Разбираться дальше желания огромного нет и опыта не хватает.
Задал бы вопрос где нибудь здесь: https://discord.gg/ktA4Kh
Не в сети
Написал, толку 0.
Не в сети
Дружище. Представь что никто с этой фишкой не работет, и что. Кто кинется разбираться!?
Напиши уже сам рекурсию хождения по папкам. Делов то.
Не в сети
Жаль что нет из коробки. Фреймворк хорош, но видимо и в нем есть косяки.
Всеже спасибо.
Не в сети
Жаль что нет из коробки. Фреймворк хорош, но видимо и в нем есть косяки.
Драйвер для работы по FTP Laravel взял отсюда https://flysystem.thephpleague.com/adapter/ftp/
Этот пакет и в правду требует установку конфига recurseManually в значение true, иначе рекурсия не будет работать.
Есть настройка recurseManually которая должна из конфига стандартного читаться. Не читается!
Жаль что нет из коробки. Фреймворк хорош, но видимо и в нем есть косяки.
У меня нет ларавел проекта под рукой. Ты можешь разобраться почему-же конфиг recurseManually не ставится и отправить пул реквест.
Либо, ты можешь инстанцировать Filesystem сам, указав нужные конфигы для объектов.
$driver = new League\Flysystem\Adapter\Ftp(config('filesystems.disks.ftp'));
$fileSystem = new Illuminate\Filesystem\FilesystemAdapter($driver);
(предварительно добавив конфиг recurseManually => true в 'filesystems.disks.ftp'
Как-то так (разбирался исключительно бегая по гитхабу, возможно что-то упустил из вида).
Изменено covobo (09.08.2017 12:29:27)
Не в сети
Да я же написал что дело не только в конфиге.
если дерево такое
111
222
333
444
то ftp вернет
111
222
333
444
а не
111/222/333
111/444
вот в чем проблема.
Не в сети
Нет, оказывается все не так:
Пример:
'host' => 'ftp.sci-nnov.ru',
'username' => 'anonymous',
'password' => 'anonymous',
А вот с ftp.zakupki.gov.ru только первый уровень.
И как показали тесты с различными серверами $recurseManually не влияет.
Изменено ZGmae5dF (09.08.2017 12:54:14)
Не в сети
Ну тогда все гораздо забавнее.
Значит все зависит от типа сервера и его настроек.
Это печально.
Не в сети
Сделать самому рекурсию. И будет работать всегда!
Не в сети