function(ContainerInterface $container) { $uri = $container->has('API_URL') ? $container->get('API_URL') : 'http://proxy/api'; $client = new GuzzleHttp\Client([ 'base_uri' => $uri, 'headers' => [ 'Authorization' => [ 'Bearer ' . md5($container->get('API_KEY')) ] ] ]); return new Incoviba\Service\Login( $client, $container->get(Psr\Log\LoggerInterface::class), implode(DIRECTORY_SEPARATOR, [$container->get('folders')->cache, 'token']), $container->get('API_USERNAME'), $container->get('API_PASSWORD'), $container->get('API_KEY') ); }, GuzzleHttp\HandlerStack::class => function(ContainerInterface $container) { $stack = new GuzzleHttp\HandlerStack(); $stack->setHandler($container->get(GuzzleHttp\Handler\CurlHandler::class)); $stack->push(GuzzleHttp\Middleware::mapRequest(function(Psr\Http\Message\RequestInterface $request) use ($container) { $login = $container->get(Incoviba\Service\Login::class); return $request->withHeader('Authorization', "Bearer {$login->getKey()}"); })); $stack->push(GuzzleHttp\Middleware::mapRequest(function(Psr\Http\Message\RequestInterface $request) use ($container) { if (!$request->hasHeader('Authorization')) { return false; } return $request; })); return $stack; }, Psr\Http\Client\ClientInterface::class => function(ContainerInterface $container) { return new GuzzleHttp\Client([ 'base_uri' => $container->has('API_URL') ? $container->get('API_URL') : 'http://proxy/api', 'handler' => $container->get(GuzzleHttp\HandlerStack::class), ]); }, Incoviba\Service\FastCGI::class => function(ContainerInterface $container) { $fcgi = new Incoviba\Service\FastCGI( $container->get(Incoviba\Service\Login::class), $container->has('SOCKET_HOST') ? $container->get('SOCKET_HOST') : 'web', $container->has('SOCKET_PORT') ? $container->get('SOCKET_PORT') : 9000, $container->has('SOCKET_ROOT') ? $container->get('SOCKET_ROOT') : '/code/public/index.php' ); $fcgi->setLogger($container->get(Psr\Log\LoggerInterface::class)); return $fcgi; }, ];