2017 © Pedro Peláez
 

library artax-composer

image

pensiero/artax-composer

  • Tuesday, July 31, 2018
  • by pensiero
  • Repository
  • 1 Watchers
  • 0 Stars
  • 1,459 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 7 Versions
  • 2 % Grown

The README.md

artax-composer

ArtaxComposer is a Zend Framework 2 service wrapper around the amphp/artax client, (*1)

Getting Started

composer require pensiero/artax-composer

Add ArtaxComposer as module in your application.config.php, (*2)

Usage

You will now have access to the ArtaxComposer\Service\ArtaxService service., (*3)

You can get it in your factory:, (*4)

/** @var \ArtaxComposer\Service\ArtaxService $artaxService */
$artaxService = $serviceLocator->get('ArtaxComposer\Service\ArtaxService');

Configs

By default ArtaxComposer come with this configs, (*5)

    'artax_composer'  => [

        /*
         * Cache could be:
         *  - null
         *  - an instance of Zend\Cache\Storage\Adapter\AbstractAdapter
         *  - a string rapresenting a service to search inside the serviceLocator
         */
        'cache' => null,

        /*
         * If seeds are enabled, the system will write inside the specified seeds directory the result of each request
         * Clear the seeds directory in order to have fresh results
         */
        'seeds' => [
            'enabled'   => false,
            'directory' => 'data/seeds/',
        ],

        /*
         * Default headers to add inside each request
         */
        'default_headers' => [
            'Accept'       => 'application/json',
            'Content-Type' => 'application/json; charset=utf-8',
        ],

        /*
         * Enable or not the newrelic extension
         */
        'newrelic' => false,
    ],

You can ovveride them in your module.config.php, (*6)

Available methods

Each methods is chainable, except for the get(), post(), put() and delete() methods., (*7)

setUri(string $uri)

Set the URI of the request., (*8)

setParams(array $params)

Set the params passed to the request. GET params should not be passed in the uri, but via this method., (*9)

addHeader(string $name, string $value)

Add an header., (*10)

setHeaders(array $headers)

Replace all headers via those passed., (*11)

withHeaders()

Return headers along the response., (*12)

setAuthToken(string $authToken)

Set an header authorization token in the form key: Authorization, value: Token token="AUTH_TOKEN"., (*13)

useCache(int $ttl = null)

Cache each request via the cache defined in module.config.php (example below)., (*14)

reset()

Reset all params passed before. Default headers will be restored if previously overwritten., (*15)

debug()

Instead of the response, return an array of all the configuration passed to the service., (*16)

returnObject()

The response will be an object., (*17)

returnArray()

The response will be an array., (*18)

returnObject()

The response will be a json string., (*19)

get()

Perform a GET request and return a response., (*20)

post()

Perform a POST request and return a response., (*21)

put()

Perform a PUT request and return a response., (*22)

delete()

Perform a DELETE request and return a response., (*23)

Examples

Simple GET request with params

$response = $this
    ->artaxService
    ->setUri('https://api.github.com/users/pensiero')
    ->setParams([
      'bacon' => 'slurp',
    ])
    ->get();

POST request with params and cache

In your module.config.php, (*24)

    'service_manager' => [
        'factories'          => [
            'Application\Cache\Redis' => 'Application\Cache\RedisFactory',
        ],
    ],
    'artax_composer'  => [
        'cache' => 'Application\Cache\Redis',
    ],

Create module/src/Application/Cache/RedisFactory.php, (*25)

<?php
namespace Application\Cache;

use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\Cache\Storage\Adapter\RedisOptions;
use Zend\Cache\Storage\Adapter\Redis;

class RedisFactory implements FactoryInterface
{
    public function createService(ServiceLocatorInterface $serviceLocator)
    {
        $redisOptions = new RedisOptions();
        $redisOptions
            ->setServer('YOUR_HOST', 'YOUR_PORT');

        return new Redis($redisOptions);
    }
}

Call:, (*26)

$response = $this
    ->artaxService
    ->setUri('https://api.github.com/users/pensiero')
    ->setParams([
      'bacon' => 'slurp',
      'eggs'  => 'top',
    ])
    ->useCache()
    ->post();

The Versions

31/07 2018

dev-first-commit

dev-first-commit

  Sources   Download

08/04 2017