cabello / selector
以时尚的方式从JSON、StdClass中提取信息
dev-master
2013-09-27 15:18 UTC
Requires
- php: >=5.3
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-14 15:00:46 UTC
README
免责声明
如果你发现这个项目但认为它不完整或不符合你的需求,请尝试 属性访问。
问题
想象一下,你有一个 StdClass(可能是通过 json_decode 创建的)实例,它充满了你想检索的属性。所以你这样做
$username = $photo->owner->username;
如果 username 和/或 owner 未定义会发生什么?
$username = isset($photo) && isset($photo->owner) && isset($photo->owner->username)
? $photo->owner->username
: 'anonymous';
想象一下这种逻辑遍布你的代码库。多么混乱!
解决方案
Selector将上面的糟糕代码转换为这样
$photoSelector = Selector($photo);
$username = $photoSelector->getOne('owner.username', 'anonymous');
你再也不用担心检查 StdClass 是否具有你需要的属性了,而且作为一个加分项,你还可以接收几种获取数据的方法。
功能
Selector
Selector::getOne
描述
参数
返回值
示例
示例 #1
上面的示例将输出
示例 #2
上面的示例将输出
Selector::getAll
描述
参数
返回值
示例
示例 #1
上面的示例将输出
示例 #2
上面的示例将输出
Selector::findOne
描述
参数
返回值
示例
示例 #1
上面的示例将输出
示例 #2
上面的示例将输出
Selector::findAll
描述
参数
返回值
示例
示例 #1
上面的示例将输出
示例 #2
上面的示例将输出
Selector::getDictionary
描述
参数
返回值
示例
示例 #1
上面的示例将输出
示例 #2
上面的示例将输出
开发者
假设你已经安装了 composer.phar,为 Selector 贡献很简单,Fork,克隆你的仓库并运行
cd selector # your clone folder
composer.phar install --dev
vendor/bin/phpunit tests
你现在可以编写新的测试、贡献并发送 pull 请求了。 ![]()