Объекты \SplfileInfo с дисками хранения laravel

Есть ли способ получить объекты типа splfileinfo с дисками хранения Laravel? Мне нужен общий способ отправки экземпляра, который упаковывает файл (хранящийся в локальной службе или службе s3) AnalyzeImageService,

Я подумал, что момент от splfileinfo будет отличным, так как он содержит все методы, которые нужны моему сервису (getSize и т. Д.).

Вопрос: как я могу получить объект \splfileinfo, который переносит файл с данного диска из laravel.

1 ответ

Здравствуйте, user2373229,

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

<?php

namespace App\Providers;

use Storage;
use \SplFileInfo as SplFileInfo;
use Illuminate\Support\ServiceProvider;


class SplFileInfoServiceProvider extends ServiceProvider
{
/**
 * Perform post-registration booting of services.
 *
 * @return void
 */
public function boot()
{
    Storage::extend('splfileinfo', function () {

       return new SplFileInfo;
    });
}

/**
 * Register bindings in the container.
 *
 * @return void
 */
public function register()
{
    //
}
}

После того, как вы создали поставщика услуг для регистрации расширения, вы можете использовать драйвер splfileinfo в вашем файле конфигурации config/filesystems.php.

Вы можете обратиться к документации: https://laravel.com/docs/5.3/filesystem

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