Ich möchte meine Client-Aufruf austauschen oder besser ich versuche, einen Wrapper um this package, so dass ich dies nicht jedes Mal schreiben muss , so habe ich einen neuen ServiceProvider, derLaravel Own ServiceProvider Client Aufruf Typ Fehler: Argument 1 übergeben an ... muss eine Instanz von
auf jede Anfrage, die ich mache, anrufen sollte.
// Later after the Client is called i can make a Request
return $client->getArticleQuery()->findAll();
SwapiServiceProvider
<?php
namespace Chris\Swapi;
use Illuminate\Support\ServiceProvider;
use LeadCommerce\Shopware\SDK\ShopwareClient;
class SwapiServiceProvider extends ServiceProvider
{
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
}
/**
* Register any package services.
*
* @return void
*/
public function register()
{
$this->app->singleton(ShopwareClient::class, function() {
return new ShopwareClient(
env('SHOPWARE_URL'),
env('SHOPWARE_USER'),
env('SHOPWARE_KEY')
);
});
}
}
meine Klasse
...
use LeadCommerce\Shopware\SDK\ShopwareClient as Shopware;
class Swapi
{
public function fetchAllArticles(Shopware $shopware)
{
return $shopware->getArticleQuery()->findAll();
}
}
Testing
ich es nur in meinem routes.php rufen zum Testen
use Chris\Swapi\Swapi;
Route::get('swapi', function() {
// Since this is a package i also made the Facade
return Swapi::fetchAllArticles();
});
Aber ich bekomme jedes Mal der Fehler
FatalThrowableError in Swapi.php line 18: Type error: Argument 1 passed to Chris\Swapi\Swapi::fetchAllArticles() must be an instance of LeadCommerce\Shopware\SDK\ShopwareClient, none given, called in /Users/chris/Desktop/code/swapi/app/Http/routes.php on line 7
Also frage ich, warum diese
return new ShopwareClient(
env('SHOPWARE_URL'),
env('SHOPWARE_USER'),
env('SHOPWARE_KEY')
);
nicht heißt jedes Mal wenn ich eine Methode aufrufen, z $shopware->getArticleQuery()->findAll();
Wer weiß, warum?
Der Konstruktor ** heißt ** - das hat nichts mit Ihrem Fehler zu tun. Die ** Methode ** 'fetchAllArticles' erfordert, dass eine Instanz von' Shopware' als Argument übergeben wird, das tun Sie nicht: 'return Swapi :: fetchAllArticles(); // <- no args passes ' – Steve
Das ist das Problem, ich brauche keine Argumente zu übergeben. Der Client scheint nicht aufgerufen zu werden, wenn Sie sich das Paket anschauen: https://github.com/LeadCommerceDE/shopware-sdk Was soll ich jetzt tun? :) – bobbybackblech