У меня есть только один класс в моем Laravel приложении:
namespace App\Api\Consumers
class ShoppingCartApiConsumer
{
private $baseUrl="https://shopping.example.com";
private $apiUrl="";
private $headers=[];
public function __construct(string $apiKey, string $shoppingCartId)
{
$this->apiUrl=$baseUrl."/shoppingCart/$shoppingCartId";
$this->headers["Authorization"]="Bearer $apiKey"];
}
// Rest of methods here
}
И у меня есть следующие вакансии:
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
class PrivateShoppingListConsumer implements ShouldQueue
{
use Dispatchable;
use InteractsWithQueue;
use Queueable;
private $item;
public function __construct(string $item)
{
$this->item=$item
}
public function handle(ShoppingCartApiConsumer $cart):void
{
//Logic Implemented here
}
}
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
class WorkShoppingListConsumer implements ShouldQueue
{
use Dispatchable;
use InteractsWithQueue;
use Queueable;
private $item;
public function __construct(string $item)
{
$this->item=$item
}
public function handle(ShoppingCartApiConssumer $cart):void
{
if($item != "computer"){
return;
}
//rest of code here
}
}
Для PrivateShoppingListConsumer
необходимо следующее экземпляр ShoppingCartApiConsumer
$config=config('shoppingCart');
$consumer=new ShoppingListConsumer($config['api_key'],$config['private_shopping_cart_id']);
И WorkShoppingListConsumer
требуется следующий экземпляр ShoppingListConsumer
:
$config=config('shoppingCart');
$consumer=new ShoppingListConsumer($config['api_key'],$config['work_shopping_cart_id']);
Fonfig для инициализации экземпляра следующий:
return [
'api_key' => env("API_KEY"),
'private_shopping_cart_id' => env("PRIVATE_SHOPPING_CART_ID");
'work_shopping_cart_id' => env("WORK_SHOPPING_CART_ID");
]
Итак, я хочу знать, как я могу передать следующие экземпляры для каждого задания, используя laravel Service Container? Потому что и WorkShoppingListConsumer
, и PrivateShoppingListConsumer
нужен соответствующий экземпляр класса, чтобы мои бизнес-логики c работали.