dev-master
9999999-devHandy Traversal of chained objects with error trap and default value (suited for View).
MIT
The Requires
- php >=5.4.0
The Development Requires
by Jitendra Adhikari
object traverse chained
Handy Traversal of chained objects with error trap and default value (suited for View).
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, (*1)
for something like:, (*2)
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:, (*3)
$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:, (*4)
$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:, (*5)
echo \Ahc\Get::in($user, 'getGroup.getPermission.getName', 'some name');
edit your composer.json
to include "adhocore/get-in": "1.0.*@dev"
in the require
section and run composer update
, (*6)
the name get-in is based on igorw/get-in
which is similar thing for array manipulation, adhocore/get-in
being for chained objects, (*7)
Handy Traversal of chained objects with error trap and default value (suited for View).
MIT
object traverse chained