cristal/php-api-wrapper

Work with APIs like with Laravel Eloquent or Doctrine (no longer a dream)

Installs: 78 439

Dependents: 0

Suggesters: 0

Security: 0

Stars: 119

Watchers: 11

Forks: 33

Open Issues: 26

Type:package

v6.2.5 2023-10-25 14:29 UTC

README

Latest Stable Version GitHub issues GitHub license

PHP API Wrapper is a smart stack based on a couple of a Transport and a smart Wrapper for your API. It is designed to be easily integrated into your projects thanks to bridges for Laravel, Symfony, API Platform and a standalone stack.

🚀 Installation using Composer

composer require cristal/php-api-wrapper

👀 Quick view

<?php

// Configure your API

use Cristal\ApiWrapper\Model;
use Cristal\ApiWrapper\Transports\Basic;
use App\User;
use Curl\Curl;

$transport = new Basic('username', 'password', 'http://api.example.com/v1/', new Curl);
$api = new Api($transport);

Model::setApi($api);

// Use your model like Eloquent (Usage with Symfony is significantly different)

$activedUsers = User::where(['active' => true])->get();

foreach($activedUsers as $user){
    $user->active = false;
    $user->save();
}

📖 Chose your stack

👉 Start without Laravel or Symfony

If you decide to work without Laravel or Symfony, PHP Api Wrapper comes with a standalone Builder and a Model largely inspired by Eloquent, but really standalone. I promise !

Start without Laravel or Symfony

👉 Start with Laravel

This is actualy the powerfull usage of API Wrapper. If you decide to use PHP API Wrapper with Laravel the integration approaches perfection. The builder returns Collections, all models are usable with the Laravel Route Binding (this is really impressive). And icing on the cake, you can create complexes relations between Eloquent and PHP API Wrapper.

Start with Laravel

👉 Start with Symfony (and optionally Api Platform)

This implementation is realy interesting too, the Symfony bridge provide you a Repository implementing the Doctrine RepositoryInterface which hydrates your entities. A Manager is also available which allows you to manage repositories and its connections. If you are using API Platform this is fully compatible. A API Platform Data Provider is also registered.

⚠️ Careful, this implementation is currently read-only. Help us to implement the missing parts !

Start with Symfony