Recommend this page to a friend! |
Download .zip |
Info | Documentation | View files (27) | Download .zip | Reputation | Support forum | Blog | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2015-10-20 (1 year ago) | Not enough user ratings | Total: 165 | All time: 8,081 This week: 935 |
Version | License | PHP version | Categories | |||
nest 1.2.3 | GNU General Publi... | 5.4 | PHP 5, Data types, Language |
Description | Author | ||||||||
This class can easily set and get values of nested arrays. |
|
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.
// 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;
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.
$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 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.
Nest doesn't throw any exceptions, that's the rule. Nest was designed to fail gracefully with default values instead of using exceptions.
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.
Install PHPUnit globally, then run it on the tests/
directory.
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.
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.
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/>.
Files |
File | Role | Description | ||
---|---|---|---|---|
src (1 file) | ||||
docs (1 file) | ||||
tests (19 files) | ||||
.travis.yml | Data | Auxiliary data | ||
CHANGELOG | Data | Changelog | ||
composer.json | Data | Auxiliary data | ||
COPYRIGHT | Lic. | Copyright information | ||
LICENSE | Lic. | License information | ||
README.md | Doc. | ReadMe |
Files | / | tests |
File | Role | Description |
---|---|---|
arrayForeachTest.php | Test | Unit test: array foreach |
arrayGetTest.php | Test | Unit test: array get |
arrayHelpersTest.php | Test | Unit test: array helpers |
arrayIsSetTest.php | Test | Unit test: is set |
arrayMathTest.php | Test | Unit test: array math |
arraySetTest.php | Test | Unit test: array set |
arrayStaticTest.php | Test | Unit test: array static |
dataTest.php | Test | Unit test: data |
issetTest.php | Test | Unit test: is set |
jsonTest.php | Test | Unit test: json |
magicPrefixTest.php | Test | Unit test: magic prefix |
objectForeachTest.php | Test | Unit test: object foreach |
objectGetFunctionsTest.php | Test | Unit test: object get functions |
objectGetPropertiesTest.php | Test | Unit test: object get properties |
objectSetTest.php | Test | Unit test: object set |
objectStaticTest.php | Test | Unit test: object static |
serializeTest.php | Test | Unit test: serialize |
sortTest.php | Test | Unit test: sort |
unsetTest.php | Test | Unit test: unset |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
100% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.