サードパーティの支払いソリューションを呼び出すために応答できるクラスがあります。
この一環として、さまざまなマーチャントID /共有シークレットパラメーターがあります。これらは、誰がアプリケーションにログインしているかによって異なります。
私が使用しているクラスは、クラスがビルドされるときにコンストラクターでこの情報を受け取ります。おそらく次のように、これをサービスプロバイダーに渡す方法はありますか?
$this->app->bind( 'App\BokaKanot\Interfaces\BillingInterface',function ($merchantId)
{
return new KlarnaBilling($merchantId);
} );
もしそうなら、コンストラクタを介してこれを行うか、私はmanaully使用する必要がありますすることが可能ですApp:make
。を使用する必要がある場合App::make
、これを呼び出し元のクラス内に非表示にするにはどうすればよいですか?
または、使用しているクラスをリファクタリングして、コンストラクターでこれを必要とせず、おそらくinitメソッドを使用する必要がありますか?
次のApp::make
ように、コンストラクターにパラメーターを渡したり、コンストラクターにパラメーターを渡したりできます。
$this->app->bind( 'App\BokaKanot\Interfaces\BillingInterface',
function( $app, array $parameters)
{
//call the constructor passing the first element of $parameters
return new KlarnaBilling( $parameters[0] );
} );
//pass the parameter to App::Make
App::make( 'App\BokaKanot\Interfaces\BillingInterface', [ $merchantId ] );
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加