<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lushdigital / microservice-aggregator-transport example snippets
$app->configure('transport');
/**
* @file
* Contains \App\Services\MyAwesomeService.
*/
namespace App\Services;
use LushDigital\MicroserviceAggregatorTransport\Service as BaseService;
use LushDigital\MicroserviceAggregatorTransport\Request;
use App\Models\Thing;
/**
* Transport layer for my awesome service.
*
* @package App\Services
*/
class MyAwesomeService extends BaseService
{
/**
* Save a thing.
*
* @param Thing $thing
* The thing to save.
*
* @return array
*/
public function saveAThing(Thing $thing)
{
// Create the request.
$request = new Request('things', 'POST', $thing->toArray());
// Do the request.
$this->dial($request);
$response = $this->call();
return !empty($response->data->things) ? $response->data->things : [];
}
}
/**
* @file
* Contains \App\Services\MyAwesomeService.
*/
namespace App\Services;
use LushDigital\MicroserviceAggregatorTransport\CloudService;
use LushDigital\MicroserviceAggregatorTransport\Request;
use App\Models\Thing;
/**
* Transport layer for my awesome cloud service.
*
* @package App\Services
*/
class MyAwesomeCloudService extends CloudService
{
/**
* Save a thing.
*
* @param Thing $thing
* The thing to save.
*
* @return array
*/
public function saveAThing(Thing $thing)
{
// Create the request.
$request = new Request('things', 'POST', $thing->toArray());
// Do the request.
$this->dial($request);
$response = $this->call();
return !empty($response->data->things) ? $response->data->things : [];
}
}
/**
* @file
* Contains \App\Http\Controllers\MyAwesomeController.
*/
namespace App\Http\Controllers;
use App\Models\Thing;
use App\Services\MyAwesomeService;
use App\Services\MyAwesomeCloudService;
use GuzzleHttp\Exception\BadResponseException;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Laravel\Lumen\Routing\Controller as BaseController;
use LushDigital\MicroserviceAggregatorTransport\ServiceInterface;
class MyAwesomeController extends BaseController
{
/**
* Transport layer for my awesome service.
*
* @var ServiceInterface
*/
protected $myAwesomeService;
/**
* Transport layer for my awesome cloud service.
*
* @var ServiceInterface
*/
protected $myAwesomeCloudService;
/**
* MyAwesomeController constructor.
*/
public function __construct()
{
$this->myAwesomeService = new MyAwesomeService();
$this->myAwesomeCloudService = new MyAwesomeCloudService();
}
/**
* Create a new thing.
*
* @param Request $request
* @return Response
*/
public function storeThing(Request $request)
{
// Validate the request.
$this->validate($request, ['name' => '
/**
* @file
* Contains \App\Services\MyAwesomeService.
*/
namespace App\Services;
use LushDigital\MicroserviceAggregatorTransport\Service as BaseService;
use LushDigital\MicroserviceAggregatorTransport\Request;
use GuzzleHttp\Promise\PromiseInterface;
use App\Models\Thing;
/**
* Transport layer for my awesome service.
*
* @package App\Services
*/
class MyAwesomeService extends BaseService
{
/**
* Save a thing.
*
* @param Thing $thing
* The thing to save.
* @param callable|null $onFulfilled
* Function to run on a successful call.
* @param callable|null $onRejected
* Function to run on a rejected call.
*
* @return PromiseInterface
*/
public function saveAsyncThing(Thing $thing, callable $onFulfilled = null, callable $onRejected = null)
{
// Create the request.
$request = new Request('things', 'POST', $thing->toArray());
// Do the request.
$this->dial($request);
return $this->callAsync($onFulfilled, $onRejected);
}
}
/**
* @file
* Contains \App\Http\Controllers\MyAwesomeController.
*/
namespace App\Http\Controllers;
use App\Models\Thing;
use App\Services\MyAwesomeService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Laravel\Lumen\Routing\Controller as BaseController;
use LushDigital\MicroserviceAggregatorTransport\ServiceInterface;
use GuzzleHttp\Exception\RequestException;
use Psr\Http\Message\ResponseInterface;
class MyAwesomeController extends BaseController
{
/**
* Transport layer for my awesome service.
*
* @var ServiceInterface
*/
protected $myAwesomeService;
/**
* Transport layer for my awesome cloud service.
*
* @var ServiceInterface
*/
protected $myAwesomeCloudService;
/**
* MyAwesomeController constructor.
*/
public function __construct()
{
$this->myAwesomeService = new MyAwesomeService();
}
/**
* Create a new thing.
*
* @param Request $request
* @return Response
*/
public function storeThing(Request $request)
{
// Validate the request.
$this->validate($request, ['things.*.name' => '
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.