hambrook / nest
增强PHP数组和对象的功能,无需担心验证即可访问嵌套数据(甚至函数内的数据)。
This package is not auto-updated.
Last update: 2024-09-18 19:43:35 UTC
README
#Nest ######由 Rick Hambrook 编写
Nest 是一个PHP类,允许您轻松地从嵌套数组和对象中获取和设置值,无需担心错误或缺失数据。您无需检查键、属性或函数是否存在。所有设计都是为了优雅地失败。
需要从返回数组的函数中获取值,该函数需要对象作为参数,而该对象存储在数组中?Nest 会为您获取它,或者如果您想要的值不存在,则返回默认值。很简单。
您可以获取和设置嵌套值。您可以使用 foreach 遍历它们。唯一的限制是您不能设置函数返回的值,因为这是显而易见的。
####为什么这样做...
// need to get $array["one"]["two"] if (array_key_exists("one", $array) && array_key_exists("two", $array["one"])) { $value = $array["one"]["two"]; }
####当你能这样做时?
// need to get $array["one"]["two"] $value = $array->one__two;
您无需担心任何键检查,或检查是否设置了...只需获取值即可。您可以为找不到想要的值指定默认值(默认为 null),专注于构建优秀的应用程序而不是验证数据。
##示例
$Nest = new \Hambrook\Nest\Nest( [ "foo" => "bar", "one" => [ "two" => "three" ] ] );
####使用字符串作为路径参数
$value = $Nest->get("foo"); // "bar"
####这次我们深入两层,所以使用数组作为路径
$value = $Nest->get(["one", "two"]); // "three"
####如果我们尝试获取不存在的值会发生什么?它会出错吗?
$value = $Nest->get(["nope", "two"]); // returns `null`, not an error
####或者我们可以指定自己的默认值以处理错误
$value = $Nest->get(["nope", "two"], "safe"); // returns "safe", not an error
##这是给谁的?Nest 是为处理数组和不清楚数据的情况而设计的。它与 Config 类配合使用得很好,用于存储其他类或 CLI 脚本的配置数据。但可以在任何地方使用。
##异常在哪里?Nest 不会抛出任何异常,这是规则。Nest 设计为使用默认值优雅地失败,而不是使用异常。
##关于性能影响?虽然 Nest 可以在任何地方使用,但它主要是为 CLI 应用程序构建的,在 CLI 应用程序中,毫秒不计。我考虑到了速度,但并不是首要关注的问题。在某个时候,我将添加基准测试和时间,看看我能从执行时间中削减多少。
##测试安装全局安装 PHPUnit,然后在 tests/ 目录中运行它。
##反馈告诉我你是否喜欢它。告诉我你是否讨厌它。告诉我你是否使用了它,并且认为“一般”。我很乐意听到您的反馈。
##贡献您可以随意分支此项目并提交拉取请求,或者甚至通过问题跟踪器请求功能。请对拉取请求进行描述,并匹配现有的代码风格。
##路线图
- PHP7 支持
- 添加任何其他应包含的标准文档
- 也许可以添加一个参数到 get(),允许指定验证回调函数
- 如果您有任何想法,告诉我。
##许可证版权 © 2015 Rick Hambrook
本程序是自由软件:您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或者(根据您的选择)任何后续版本。
本程序按“希望它有用”的原则分发,但没有任何保证;甚至没有关于适销性或特定用途的暗示保证。有关详细信息,请参阅GNU通用公共许可证。
您应该已经随本程序收到了一份GNU通用公共许可证的副本。如果没有,请参阅https://gnu.ac.cn/licenses/。