私のPHPの知識に基づいて、Laravelのファサードがどのように機能するのかわからず、Storage facadeを拡張して新しい機能を追加しようとしました。Laravel Storageファサードを拡張するには?
class MyStorageFacade extends Facade {
/**
* Get the binding in the IoC container
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'MyStorage'; // the IoC binding.
}
}
ながら起動するサービスプロバイダ:
私はこのコードを持っている
$this->app->bind('MyStorage',function($app){
return new MyStorage($app);
});
そして、ファサードは、次のとおりです。
class MyStorage extends \Illuminate\Support\Facades\Storage{
}
それを使用して:
use Namespace\MyStorage\MyStorageFacade as MyStorage;
MyStorage::disk('local');
を、私はこのエラーを取得する:
FatalThrowableError in Facade.php line 237: Call to undefined method Namespace\MyStorage\MyStorage::disk()
またはMyStorage
フォームIlluminate\Filesystem\Filesystem
を拡張しようとしましたし、他の方法で同じエラーを得た:
BadMethodCallException in Macroable.php line 74: Method disk does not exist.
私が述べたように、私はそれをテストし、このエラーを取得しました:Macroable.phpライン74で 'BadMethodCallExceptionを:メソッドのディスクが – Omid
@Omid' disk'は本当にどこにもかかわらず、定義されていないがexist.'しません。 – apokryfos
その場合、 '\ Storage :: disk( 'local')'はどのように動作しますか? @apokryfos – Omid