2016-09-02 2 views
0

laravelストレージディスクでsplfileinfoタイプのオブジェクトを取得する方法はありますか?私はAnalyzeImageServiceにファイル(ローカルまたはs3サービスに保存されている)をラップするインスタンスを送信する一般的な方法が必要です。 laravelストレージディスクを持つSplfileInfoオブジェクト

私は、私のサービスが必要とするすべてのメソッド(getSizeなど)を持っているので、splfileinfoの瞬間は素晴らしいと思っていました。

質問:laravelからディスクを指定してファイルをラップする\ splfileinfoオブジェクトを取得するにはどうすればよいですか。

答えて

0

こんにちはuser2373229、

あなたは、サービスプロバイダを作成する必要がありますカスタムファイルシステムを設定するために。プロバイダのブート方法では、Storageファサードのextendメソッドを使用してカスタムドライバを定義することができます。拡張子を登録するには、サービスプロバイダを作成したら

<?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() 
{ 
    // 
} 
} 

、あなたのconfig/filesystems.php構成ファイルではSplFileInfoドライバを使用することができます。

ドキュメントを参照してください:https://laravel.com/docs/5.3/filesystem#custom-filesystems

関連する問題