selective/array-reader

A strictly typed array reader

1.1.0 2020-12-28 17:34 UTC

This package is auto-updated.

Last update: 2021-12-01 00:20:17 UTC


README

A strictly typed array reader for PHP.

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Requirements

  • PHP 7.3+ or 8.0+

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

Click to expand! 109776592-096fcc80-7c03-11eb-95d4-6eef8fe982e2.png

After: Conditions: 1, Paths: 1, CRAP Score: 1

Click to expand! 109777526-1e992b00-7c04-11eb-8e6b-04d538661f4a.png

Similar libraries

License

The MIT License (MIT). Please see License File for more information.