selective / array-reader
A strictly typed array reader
Installs: 53 098
Dependents: 4
Suggesters: 0
Security: 0
Stars: 11
Watchers: 3
Forks: 2
Open Issues: 0
Requires
- php: ^8.1
- cakephp/chronos: ^2 || ^3
Requires (Dev)
README
A strictly typed array reader for PHP.
Requirements
- PHP 8.1+
Installation
composer require selective/array-reader
Usage
You can use the ArrayReader
to read single values from a multidimensional
array by passing the path to one of the get{type}()
and find{type}()
methods.
Each get*() / find*()
method takes a default value as second argument.
If the path cannot be found in the original array, the default is used as return value.
A get*()
method returns only the declared return type.
If the default value is not given and the element cannot be found, an exception is thrown.
A find*()
method returns only the declared return type or null
.
No exception is thrown if the element cannot be found.
<?php use Selective\ArrayReader\ArrayReader; $arrayReader = new ArrayReader([ 'key1' => [ 'key2' => [ 'key3' => 'value1', ] ] ]); // Output: value1 echo $arrayReader->getString('key1.key2.key3');
Better Code Quality
Converting complex data with simple PHP works by using a lot of type casting and if
conditions etc.
This leads to very high cyclomatic complexity and nesting depth, and thus poor "code rating".
Before: Conditions: 10, Paths: 512, CRAP Score: 10
After: Conditions: 1, Paths: 1, CRAP Score: 1
Similar libraries
- https://github.com/michaelpetri/typed-input
- https://github.com/codeliner/array-reader
- https://github.com/adbario/php-dot-notation
- https://symfony.com/doc/current/components/property_access.html
License
The MIT License (MIT). Please see License File for more information.