1. Go to this page and download the library: Download scafera/integration library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
scafera / integration example snippets
namespace App\Integration\Stripe;
use Scafera\Integration\HttpClient;
use Scafera\Integration\Attribute\Integration;
final class PaymentGateway
{
public function __construct(
#[Integration('stripe')]
private HttpClient $http,
) {}
public function createPayment(int $amount, string $currency): array
{
return $this->http->post('/charges', [
'amount' => $amount,
'currency' => $currency,
])->json();
}
public function refund(string $chargeId): array
{
return $this->http->post('/refunds', [
'charge' => $chargeId,
])->json();
}
}
namespace App\Service\Order;
use App\Integration\Stripe\PaymentGateway;
final class PlaceOrder
{
public function __construct(
private PaymentGateway $payment,
) {}
public function handle(int $amount): array
{
return $this->payment->createPayment($amount, 'usd');
}
}
namespace App\Integration\LinkedIn;
use Scafera\Integration\HttpClient;
use Scafera\Integration\Attribute\Integration;
final class PremiumGateway
{
public function __construct(
#[Integration('linkedin')]
private HttpClient $http,
#[Integration('linkedin', 'contract_id')]
private string $contractId,
#[Integration('linkedin', 'seat_limit')]
private int $seatLimit,
) {}
public function inviteSeat(string $userId): array
{
return $this->http->post('/premium/invites', [
'contract_id' => $this->contractId,
'user_id' => $userId,
])->json();
}
}
final class PlaceOrderTest extends WebTestCase
{
public function testPlacesOrder(): void
{
// Mock PaymentGateway — stable, behavior-focused
// No HTTP client mocking, no request/response faking
}
}
use Symfony\Component\HttpClient\MockHttpClient;
use Symfony\Component\HttpClient\Response\MockResponse;
$mock = new MockHttpClient([new MockResponse('{"id": 1}')]);
$http = new HttpClient('https://api.example.com', null, $mock);
$gateway = new PaymentGateway($http);
$result = $gateway->createPayment(1000, 'usd');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.