hambrook/nest 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

hambrook/nest

Composer 安装命令:

composer require hambrook/nest

包简介

Power up PHP arrays and objects and access nested data (even within functions) without worrying about validation.

README 文档

README

#Nest ######By Rick Hambrook

Build Status

Nest is a PHP class that lets you easily get and set values in nested arrays and objects without worrying about errors or missing data. You don't have to check if keys, properties or functions exist. It's all designed to fail gracefully.

Need a value from an array that is returned by a function that requires parameters on an object which is stored in an array? Nest will get it for you, or return a default value if the one you want isn't there. Easy.

You can get and set nested values. You can iterate over them with foreach. The only limitation is that you can't set the value returned by a function because, well, it's obvious.

####Why do this...

// need to get $array["one"]["two"]
if (array_key_exists("one", $array) && array_key_exists("two", $array["one"])) {
	$value = $array["one"]["two"];
}

####When you could do this?

// need to get $array["one"]["two"]
$value = $array->one__two;

You don't have to worry about any key checks, or checking if things are set... Just fetch the value. You can specify a default value (null by default) to use in case the one you want isn't there. Focus on building great apps instead of validating data.

##Example

$Nest = new \Hambrook\Nest\Nest(
	[
		"foo" => "bar",
		"one" => [
			"two" => "three"
		]
	]
);

####Use a string as the path parameter

$value = $Nest->get("foo");
// "bar"

####We're going two levels in this time, so use an array for the path

$value = $Nest->get(["one", "two"]);
// "three"

####What if we try to get something that isn't there? Does it error?

$value = $Nest->get(["nope", "two"]);
// returns `null`, not an error

####Or we can specify our own default in case of error

$value = $Nest->get(["nope", "two"], "safe");
// returns "safe", not an error

##Who is it for? Nest is for working with arrays and objects were you aren't always sure of the data. It works great with the Config class for storing configuration data for other classes or CLI scripts. But it can be used anywhere.

##Where are the exceptions? Nest doesn't throw any exceptions, that's the rule. Nest was designed to fail gracefully with default values instead of using exceptions.

##What about the performance hit? Although Nest can be used anywhere, it was built primarily for CLI apps where milliseconds don't matter. I've kept speed in mind but it's not a primary concern. At some point I will add benchmarks and timing and see how much I can shave off the execution time.

##Testing Install PHPUnit globally, then run it on the tests/ directory.

##Feedback Tell me if you loved it. Tell me if you hated it. Tell me if you used it and thought "meh". I'm keen to hear your feedback.

##Contributing Feel free to fork this project and submit pull requests, or even just request features via the issue tracker. Please be descriptive with pull requests and match the existing code style.

##Roadmap

  • PHP7 support
  • Add any other standard documentation that should be included
  • Maybe add a parameter to get() that allows specifying a validator callback
  • If you have an idea, let me know.

##License Copyright © 2015 Rick Hambrook

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

hambrook/nest 适用场景与选型建议

hambrook/nest 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 64 次下载、GitHub Stars 达 5, 最近一次更新时间为 2015 年 10 月 12 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「array」 「object」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 hambrook/nest 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 hambrook/nest 我们能提供哪些服务?
定制开发 / 二次开发

基于 hambrook/nest 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 64
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 17
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0
  • 更新时间: 2015-10-12