/typer

This is a simple helper package that will help you avoid using "if" and ternary operators.

Primary LanguagePHP

Typer

Packagist Version GitHub Workflow Status (with branch) Coverage Packagist Downloads Packagist Downloads

Mutation testing badge type-coverage psalm-level

This is a simple helper package that helps make the code cleaner. Often, when working with data from third-party sources, such as website parsing, you need to write hundreds of lines of code to check for a particular property.

Most likely, you write a lot of if or ternary operators, and your code looks something like this:

$user = new User();
$user->id = isset($dynamicArray['id']) ? (int)$dynamicArray['id'] : null;
$user->email = isset($dynamicArray['email']) ? (string)$dynamicArray['email'] : null;
$user->balance = isset($dynamicArray['balance']) ? (float)$dynamicArray['balance'] : null;
$user->blocked = isset($dynamicArray['blocked']) ? ($dynamicArray['blocked'] === 'true' ? true : false) : null;

When using Typer, you don't need to worry about a lot of checks and transformations. Simply wrap the code in the typer method:

$user = new User();
$user->id = Typer::int($dynamicArray, 'id');
$user->email = Typer::string($dynamicArray, 'email');
$user->balance = Typer::float($dynamicArray, 'balance');
$user->blocked = Typer::bool($dynamicArray, 'blocked');

If, in the absence of a parameter, you need to specify a default value other than "null", you can simply pass it as the second argument:

$user->balance = Typer::float($dynamicArray, 'balance', 10.0);

Installation

The package can be installed via composer:

composer require yzen.dev/typer