adhocore/get-in

This package is abandoned and no longer maintained. No replacement package was suggested.

Handy Traversal of chained objects with error trap and default value (suited for View).

Maintainers

Package info

github.com/adhocore/get-in

pkg:composer/adhocore/get-in

Statistics

Installs: 13

Dependents: 0

Suggesters: 0

Stars: 8

Open Issues: 0

dev-master / 1.0.x-dev 2018-08-05 09:40 UTC

This package is auto-updated.

Last update: 2022-10-01 08:01:56 UTC


README

this prevents php error "Call to a member function on a non-object" and provides elegant syntax to access the methods of chained object in a fluent way and also has default value for if it should fail at any point

rationale and usage

for something like:

echo $user->getGroup()->getPermission()->getName();

this scenario is not uncommon in any ORM. now, in case $user is null or $user->getGroup() is null or etc, it can be hell of a checks like:

$default = 'some name';
if ($user) {
    $group = $user->getGroup();
    if ($group) {
        $permission = $group->getPermission();
        if ($permission){
            echo $permission->getName();
        } else {
            echo $default;
        }
    } else {
        echo $default;
    }
} else {
    echo $default;
}

or it can be quite shorter in another smart way like:

$default = 'some name';
if ($user and 
    $group = $user->getGroup() and 
    $permission = $group->getPermission()
) {
    echo $permission->getName();
} else {
    echo $default;
}

still not perfect. adhocore/get-in saves one from this PITA by providing handy wrapper like:

echo \Ahc\Get::in($user, 'getGroup.getPermission.getName', 'some name');

installation

edit your composer.json to include "adhocore/get-in": "1.0.*@dev" in the require section and run composer update

advantage

  • prevents multi layer check
  • prevents errors like "Call to a member function on a non-object"
  • saves from temporary variable creation during the checks
  • provides a way to have default value should it fail at any point

the name

the name get-in is based on igorw/get-in which is similar thing for array manipulation, adhocore/get-in being for chained objects