adhocore/ get-in
该包已废弃,不再维护。没有建议的替代包。
具有错误陷阱和默认值的链式对象的便捷遍历(适用于视图)。
dev-master / 1.0.x-dev
2018-08-05 09:40 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ^4.8 || ^5.7 || ^6.5
This package is auto-updated.
Last update: 2022-10-01 08:01:56 UTC
README
这防止了PHP错误 "在非对象上调用成员函数" 并提供了优雅的语法来以流畅的方式访问链式对象的方法,并且如果它在任何点上失败,还提供了默认值
原理和用法
例如
echo $user->getGroup()->getPermission()->getName();
这种情况在任何ORM中都很常见。现在,如果 $user
是 null
或 $user->getGroup()
是 null
或等,那么将会有很多检查,比如
$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; }
或者可以以一种更简洁的方式实现,比如
$default = 'some name'; if ($user and $group = $user->getGroup() and $permission = $group->getPermission() ) { echo $permission->getName(); } else { echo $default; }
仍然不完美。 adhocore/get-in
通过提供方便的包装器来避免这种痛苦
echo \Ahc\Get::in($user, 'getGroup.getPermission.getName', 'some name');
安装
编辑你的 composer.json
,在 require
部分包含 "adhocore/get-in": "1.0.*@dev"
并运行 composer update
优势
- 防止多层级检查
- 防止出现 "在非对象上调用成员函数" 等错误
- 避免在检查过程中创建临时变量
- 提供在失败时具有默认值的方法
名称
名称get-in基于 igorw/get-in
,它是用于数组操作的类似东西,而 adhocore/get-in
是用于链式对象