PHP code example of jasny / dotkey
1. Go to this page and download the library: Download jasny/dotkey library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jasny / dotkey example snippets
use Jasny\DotKey\DotKey;
$subject = [
"a" => [
"b" => [
"x" => "y"
]
]
];
DotKey::on($subject)->exists("a.b.x"); // true
DotKey::on($subject)->exists("a.b.z"); // false
DotKey::on($subject)->exists("a.b.x.o"); // false
DotKey::on($subject)->get("a.b.x"); // "y"
DotKey::on($subject)->get("a.b"); // ["x" => "y"]
DotKey::on($subject)->get("a.b.z"); // null
DotKey::on($subject)->get("a.b.x.o"); // Throws ResolveException because a.b.x is a string
DotKey::on($subject)->set("a.b.q", "foo"); // $subject = ["a" => ["b" => ["x" => "y", "q" => "foo"]]]
DotKey::on($subject)->set("a.d", ['p' => 1]); // $subject = ["a" => ["b" => ["x" => "y"]], "d" => ["p" => 1]]
DotKey::on($subject)->set("a.c.x", "bar"); // Throws ResolveException because a.c doesn't exist
DotKey::on($subject)->set("a.b.x.o", "qux"); // Throws ResolveException because a.b.x is a string
DotKey::on($subject)->put("a.b.q", "foo"); // $subject = ["a" => ["b" => ["x" => "y", "q" => "foo"]]]
DotKey::on($subject)->put("a.c.x", "bar"); // $subject = ["a" => ["b" => ["x" => "y"]], "c" => ["x" => "bar"]]
DotKey::on($subject)->remove("a.b.x"); // $subject = ["a" => ["b" => []]]
DotKey::on($subject)->remove("a.c.z"); // $subject isn't modified
DotKey::on($subject)->remove("a.b.x.o"); // Throws ResolveException because a.b.x is a string
DotKey::on($subject)->remove("a.b"); // $subject = ["a" => []]
DotKey::on($subject)->update("a.b", fn($value) => array_map('strtoupper', $value)); // $subject = ["a" => ["b" => ["x" => "Y"]]]
use Jasny\DotKey\DotKey;
$obj = (object)["a" => (object)["b" => (object)["x" => "y"]]];
DotKey::on($obj)->exists("a.b.x");
DotKey::on($obj)->set("a.b.q", "foo");
use Jasny\DotKey\DotKey;
$source = ["a" => ["b" => ["x" => "y"]]];
DotKey::onCopy($source, $copy)->set("a.b.q", "foo"); // $copy = ["a" => ["b" => ["x" => "y", "q" => "foo"]]]
use Jasny\DotKey\DotKey;
$source = (object)["f" => (object)["x" => "y"], "g" => (object)["x" => "z"]]]];
DotKey::onCopy($source, $copy)->set("f.q", "foo");
$copy === $source; // false, source is cloned
$copy->f === $source->f; // false, `f` is cloned and modified
$copy->g === $source->g; // true, `g` is not cloned
use Jasny\DotKey\DotKey;
DotKey::on($subject)->exists('/a/b/x', '/');
DotKey::on($subject)->get("/a/b/x", '/');
DotKey::on($subject)->set("/a/b/q", "foo", '/');
DotKey::on($subject)->put("/a/b/q", "foo", '/');
DotKey::on($subject)->remove("/a/b/q", '/');
DotKey::on($subject)->exists('a::b::c', '::');
use Jasny\DotKey\DotKey;
$subject = ["a" => null];
$obj = (object)["a" => null];
DotKey::on($subject)->put("a.b.o", 1, '.'); // ["a" => ["b" => ["o" => 1]]]
DotKey::on($subject)->put("a.b.o", 1, '.', true); // ["a" => ["b" => ["o" => 1]]]
DotKey::on($subject)->put("a.b.o", 1, '.', false); // ["a" => (object)["b" => (object)["o" => 1]]]
DotKey::on($obj)->put("a.b.o", 1, '.'); // (object)["a" => (object)["b" => (object)["o" => 1]]]
DotKey::on($obj)->put("a.b.o", 1, '.', true); // (object)["a" => ["b" => ["o" => 1]]]
DotKey::on($obj)->put("a.b.o", 1, '.', false); // (object)["a" => (object)["b" => (object)["o" => 1]]]