cabello/selector

以时尚的方式从JSON、StdClass中提取信息

dev-master 2013-09-27 15:18 UTC

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 请求了。 :octocat: