yzen.dev / typer
Get property from dynamic instance
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
- mockery/mockery: 1.5.1
- phpbench/phpbench: 1.2.8
- phpunit/phpunit: 10.2.1
- roave/infection-static-analysis-plugin: 1.34
- squizlabs/php_codesniffer: 3.7.1
- vimeo/psalm: 5.22.1
This package is auto-updated.
Last update: 2024-10-23 23:22:02 UTC
README
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