1. Go to this page and download the library: Download tconway1/mattyrad-support 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/ */
tconway1 / mattyrad-support example snippets
use MattyRad\Support\Conformation;
class Sample {
use Conformation;
private $arg1;
private $arg2;
private $arg3;
private $arg4;
private $optional1;
private $optional2;
private function __construct(
string $arg1,
int $arg2,
bool $arg3,
float $arg4,
string $optional1 = '',
int $optional2 = 1
) {
$this->arg1 = $arg1;
$this->arg2 = $arg2;
$this->arg3 = $arg3;
$this->arg4 = $arg4;
$this->optional1 = $optional1;
$this->optional2 = $optional2;
}
}
class WidgetPurchased extends Result\Success
{
public function __construct(Widget $widget)
{
$this->widget = $widget;
}
public function getWidget(): Widget
{
return $this->widget;
}
}
$result = new Result\Success\WidgetPurchased($widget);
$result->getWidget(); // Widget object
$result->isSuccess(); // true
$result->isFailure(); // false
namespace MattyRad\Support\Result\Stripe;
use MattyRad\Support\Result;
class ChargeFailed extends Result\Failure
{
protected static $message = 'Stripe charge failed, delinquent card';
public function __construct($last_four_digits)
{
$this->last_four_digits = $last_four_digits;
}
public function getContext()
{
return ['last_four_digits' => $this->last_four_digits];
}
}
$result->isSuccess(); // false
$result->isFailure(); // true
$result->get('widget.name'); // throws exception with message 'Stripe charge failed, delinquent card'
$result->getWidget(); // also throws exception with message 'Stripe charge failed, delinquent card'
$result->getMessage(); // 'Stripe charge failed, delinquent card'
$result->getContext(); // ['last_four_digits' => '1234']
$result->getReason(); // 'Stripe charge failed, delinquent card; {"last_four_digits":"1234"}'
use MattyRad\Support\Result;
function purchaseWidget($user, string $widget_name): Result
{
if ($existing_widget = $this->db->getWidgetByName($widget_name)) {
return new Result\Failure\WidgetExists($existing_widget);
}
try {
$user->charge(100); // API call, this could be any interface to stripe
} catch (\Stripe\Error\Card $e) {
return new Result\Failure\Stripe\ChargeFailed($e->getLastFour()); // pretend that getLastFour exists
}
$widget = new Widget($widget_name);
return new Result\Success\WidgetPurchased($widget);
}
$result = purchaseWidget(Auth::user(), 'my_cool_new_widget');
if ($result->isFailure()) {
return new JsonResponse(['error' => $result->getReason()], 422);
}
return new JsonResponse($result->getWidget());
class ChargeFailed extends Result\Failure
{
// ...
public function toException()
{
$response = new JsonResponse(['error' => static::$message], 422);
return new HttpResponseException($response);
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.