PHP code example of bugloos / fault-tolerance-bundle
1. Go to this page and download the library: Download bugloos/fault-tolerance-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bugloos / fault-tolerance-bundle example snippets
namespace App\Proxy;
use Bugloos\FaultToleranceBundle\Contract\Command;
/**
* All commands must extend Fault Tolerance Bundle's Command
*/
class GetOrderProxyCommand extends Command
{
private $param1;
private $param2;
public function __construct($param1, $param2)
{
$this->param1 = $param1;
$this->param2 = $param2;
}
/**
* This function is called internally by Fault Tolerance Bundle, only if the request is allowed
*
* @return mixed
*/
protected function run()
{
# Make an HTTP call
}
}
use Bugloos\FaultToleranceBundle\Factory\CommandFactoryInterface;
use App\Proxy\GetOrderProxyCommand;
class Service
{
private CommandFactoryInterface $commandFactory;
public function __construct(CommandFactoryInterface $commandFactory)
{
$this->commandFactory = $commandFactory;
}
public function getAvatarUrl()
{
$getOrderProxyCommand = $this->commandFactory->getCommand(
GetOrderProxyCommand::class,
'param1',
'param2'
);
$result = $getOrderProxyCommand->execute();
}
}
/**
* @return ?Bugloos\FaultToleranceBundle\Config\Config
*/
protected function config()
{
return (new Config())
->intervalToHalfOpen(15)
->failureRateThreshold(20)
->timeWindow(60);
}
protected function getCacheKey()
{
return 'cache_' . $user;
}
namespace App\Proxy;
use Bugloos\FaultToleranceBundle\Contract\Command;
class GetAvatarUrlProxyCommand extends Command
{
protected function run()
{
# Make an HTTP call
}
/**
* When __run__ fails for some reason, or when Fault Tolerant doesn't allow the request in the first place,
* this function result will be returned instead
*
* @return string
*/
protected function getFallback()
{
// we failed getting user's picture, so showing a generic no-photo placeholder instead.
return 'https://example.com/avatars/fallback-image.jpg';
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.