Skip to content
This repository has been archived by the owner on Mar 7, 2024. It is now read-only.

Latest commit

 

History

History
43 lines (28 loc) · 1.39 KB

integracion-generica.md

File metadata and controls

43 lines (28 loc) · 1.39 KB

Integrando esta librería a tu sistema

Usando HttpConsumerFactory

Suponiendo que en tu aplicación ya estás utilizando algún cliente con soporte PSR-17 y PSR-18.

Suponiendo que estás usando los paquetes de Sunrise

<?php
declare(strict_types=1);

use PhpCfdi\SatEstadoCfdi\HttpPsr\HttpConsumerClient;
use PhpCfdi\SatEstadoCfdi\HttpPsr\HttpConsumerFactory;
use Sunrise\Http\Client\Curl\Client as HttpClient;
use Sunrise\Http\Message\RequestFactory;
use Sunrise\Http\Message\ResponseFactory;
use Sunrise\Http\Message\StreamFactory;

$streamFactory = new StreamFactory();
$requestFactory = new RequestFactory();
$responseFactory = new ResponseFactory();
$client = new HttpClient($responseFactory);

// use the current HttpConsumerFactory with specific objects

$factory = new HttpConsumerFactory($client, $requestFactory, $streamFactory);

// create client
$consumer = new HttpConsumerClient($factory);

Extendiendo HttpConsumerFactory

Otra forma de hacerlo es extendiendo la clase HttpConsumerFactory, un ejemplo de esto se puede ver en https://github.com/phpcfdi/sat-estado-cfdi-http-psr/blob/main/tests/TestingHttpConsumerFactory.php

Implementando HttpConsumerFactoryInterface

Otra forma de hacerlo sería creando una clase que solamente extendiera HttpConsumerFactoryInterface. Pues el objeto HttpConsumerClient requiere en su contructor de un objeto que cumpla con dicha interfaz.