-
Notifications
You must be signed in to change notification settings - Fork 0
Binds
Vinicius Silva edited this page Oct 10, 2022
·
3 revisions
A forma que o pacote implementa os serviços de acesso a API do PagTesouro e é aqui que você pode trocar os serviços do pacote por serviços customizados da sua aplicação desde que implemente as respectivas interfaces.
'binds' => [
'pagtesouro' => Vsilva472\PagTesouro\Services\PagTesouro::class,
Vsilva472\PagTesouro\Contracts\Payment::class => Vsilva472\PagTesouro\Services\Payment::class,
Vsilva472\PagTesouro\Contracts\Status::class => Vsilva472\PagTesouro\Services\Status::class,
],
'http_client' => Vsilva472\PagTesouro\Services\HttpClient::class,
-
pagtesouro
Refere-se ao bind da Facade PagTesouro (não deve ser alterado) - Vsilva472\PagTesouro\Contracts\Payment::class É o contrato (interface) que o serviço de criação pagamento implementa.
- Vsilva472\PagTesouro\Contracts\Status::class É o contrato (interface) que o serviço de consulta de status de pagamento implementa.
-
http_client
É o cliente Http que o pacote utiliza esse serviço implementa o contrato Vsilva472\PagTesouro\Contracts\Http::class.
Em todas as binds a implementação do serviço pode ser trocada desde que a interface seja mantida
Vamos supor que você queira usar uma implementação customizada para o serviço de pagamento Vsilva472\PagTesouro\Services\Payment::class
Trocar de:
Vsilva472\PagTesouro\Contracts\Payment::class => Vsilva472\PagTesouro\Services\Payment::class,
Para:
Vsilva472\PagTesouro\Contracts\Payment::class => App\Services\PagamentoCustomizado::class,
A implementação da classe PagamentoCustomizado
seria algo como:
<?php
namespace App\Services;
use Vsilva472\PagTesouro\Contracts\Payment;
class PagamentoCustomizado implements Payment
{
public function createPaymentIntent(array $data)
{
//(...)
}
}