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
Wallogit.com
2017 © Pedro Peláez
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