PHPackages                             edouardkombo/ek-api-caller-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. edouardkombo/ek-api-caller-bundle

ActiveBundle[API Development](/categories/api)

edouardkombo/ek-api-caller-bundle
=================================

cURL API call functionality to communicate easily with any web api.

125[2 issues](https://github.com/edouardkombo/EkApiCallerBundle/issues)1PHP

Since Jul 27Pushed 11y ago1 watchersCompare

[ Source](https://github.com/edouardkombo/EkApiCallerBundle)[ Packagist](https://packagist.org/packages/edouardkombo/ek-api-caller-bundle)[ RSS](/packages/edouardkombo-ek-api-caller-bundle/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (1)

Ek Api Caller Bundle
====================

[](#ek-api-caller-bundle)

About
-----

[](#about)

This bundle helps you call any web api easily via Curl. Designed with CABIN design pattern (Concrete ABstraction of INterfaces), it offers clear, logic code syntax validating S.O.L.I.D principles.

CABIN principle? What's that?
-----------------------------

[](#cabin-principle-whats-that)

CABIN stands for Concrete ABstraction of INterfaces, more informations here:

Requirements
------------

[](#requirements)

Require PHP version 5.3 or greater.

Installation
------------

[](#installation)

Register the bundle in your composer.json

```
{
    "require": {
        "edouardkombo/ek-api-caller-bundle": "dev-master"
    }
}

```

Now, install the vendor

```
php composer.phar install

```

Register MultiStepFormsBundle namespace in your app/appKernel.php

```
new EdouardKombo\EkApiCallerBundle\EkApiCallerBundle(),

```

Set config parameters in app/config/config.php

```
ek_api_caller:
    cache:                   true
    verify_ssl_certificates: false
    timeout:                 90 #Maximum time of curl request
    connect_timeout:         30 #Wait x seconds before reconnect

```

Documentation
-------------

[](#documentation)

How to use it? Inside your controller, call the httpContract service like this:

```
$curl = $this->get('ek_api_caller.contract.http');
$curl->setParameter('url',     $url);
$curl->setParameter('headers', $httpHeaders); //$httpHeaders => array
$curl->setParameter('datas',   $urlDatas);   //$urlDatas   => array

//Available methods for request are post, get, delete
//These methods return an array of two values (response message, and http status code)
//You can use these values to generate your api specific errors
$curl->post();

//$urlDatas array are automatically encoded, just specify an array of key => values
//Example for stripe api
$urlDatas = [
    'amount'   => 5500,
    'currency' => 'EUR',
    'card' => [
        'number'    => '4242424242424242',
        'exp_month' => '10',
        'exp_year'  => '16',
        'cvc'       => '123',
    ],
];

//$httpHeaders must be array to, but without key values
//Example for stripe api
$user_agent = [
    'bindings_version' => '1.0.0',
    'lang'             => 'php',
    'lang_version'     => PHP_VERSION,
    'publisher'        => 'scribe',
    'uname'            => php_uname(),
];

$httpHeaders = [
    'X-Stripe-Client-User-Agent: '    . json_encode($user_agent),
    'User-Agent: Stripe/v1 ScribeStripeBundle/' . '1.0.0',
    'Authorization: Bearer '          . 'STRIPE_SECRET_KEY',
    'Stripe-Version: '                . '2014-01-31'
];

```

Contributing
------------

[](#contributing)

If you want to help me improve this bundle, please make sure it conforms to the PSR coding standard. The easiest way to contribute is to work on a checkout of the repository, or your own fork, rather than an installed version.

Issues
------

[](#issues)

Bug reports and feature requests can be submitted on the [Github issues tracker](https://github.com/edouardkombo/EkApiCallerBundle/issues).

For further informations, contact me directly at .

###  Health Score

16

—

LowBetter than 4% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/aadb7e8f4da66da9399b9ee24b275e520707a61db7b75570aeaebf2084d9b236?d=identicon)[edouardkombo](/maintainers/edouardkombo)

---

Top Contributors

[![edouardkombo](https://avatars.githubusercontent.com/u/4246149?v=4)](https://github.com/edouardkombo "edouardkombo (9 commits)")

### Embed Badge

![Health badge](/badges/edouardkombo-ek-api-caller-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/edouardkombo-ek-api-caller-bundle/health.svg)](https://phpackages.com/packages/edouardkombo-ek-api-caller-bundle)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k15](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
