Объекты \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