@@ -17,7 +17,7 @@ Asterisk notation for array access in PHP. Update array access to the next level
17
17
```php
18
18
use Setnemo\Asterisk;
19
19
20
-
$items = new Asterisk([
20
+
$items = new \Setnemo\Asterisk([
21
21
'Europe' => [
22
22
'Ukraine' => [
23
23
'capital' => 'Kyiv',
@@ -58,44 +58,44 @@ composer require setnemo/asterisk-notation
58
58
59
59
## Usage
60
60
61
-
Create a new Asterisk object:
61
+
Create a new \Setnemo\Asterisk object:
62
62
63
63
```php
64
64
use Adbar\Dot;
65
65
use Setnemo\Asterisk;
66
-
$asterisk = new Asterisk;
66
+
$asterisk = new \Setnemo\Asterisk;
67
67
$array = ['first_one' => ['second' => 'value'], 'first_two' => ['second' => 'value'],];
68
68
// With existing array
69
-
$asterisk = new Asterisk($array);
69
+
$asterisk = new \Setnemo\Asterisk($array);
70
70
// With existing \Adbar\Dot
71
71
$dot = new Dot($array);
72
-
$asterisk = new Asterisk($dot);
72
+
$asterisk = new \Setnemo\Asterisk($dot);
73
73
// or existing Asterisk
74
-
$newAsterisk = new Asterisk($asterisk);
74
+
$newAsterisk = new \Setnemo\Asterisk($asterisk);
75
75
```
76
76
77
77
## Methods
78
78
79
79
Asterisk has the following methods:
80
80
81
-
- [add()](#add) // done, test included
82
-
- [all()](#all) // done, test included
83
-
- [clear()](#clear) // use Dot::clear(), test included because used set()
84
-
- [count()](#count) // use Dot::count(), test included because used get()
85
-
- [delete()](#delete) // done, test included
86
-
- [flatten()](#flatten) // use Dot::flatten()
87
-
- [get()](#get) // done, test included
88
-
- [has()](#has) // done, with 2 new parameters, test included
89
-
- [isEmpty()](#isempty) // use Dot::isEmpty(), test included because used get()
90
-
- [merge()](#merge) // use Dot::merge()
91
-
- [mergeRecursive()](#mergerecursive)// use Dot::mergeRecursive()
92
-
- [mergeRecursiveDistinct()](#mergerecursivedistinct)// use Dot::mergeRecursiveDistinct()
93
-
- [pull()](#pull) // use Dot::pull(), **need write tests**, because used get(), clear(), delete()
94
-
- [push()](#push) // use Dot::push(), **need write tests**, because used get(), set()
81
+
- [add()](#add)
82
+
- [all()](#all)
83
+
- [clear()](#clear)
84
+
- [count()](#count)
85
+
- [delete()](#delete)
86
+
- [flatten()](#flatten)
87
+
- [get()](#get)
88
+
- [has()](#has)
89
+
- [isEmpty()](#isempty)
90
+
- [merge()](#merge)
91
+
- [mergeRecursive()](#mergerecursive)
92
+
- [mergeRecursiveDistinct()](#mergerecursivedistinct)
93
+
- [pull()](#pull)
94
+
- [push()](#push)
95
95
- [replace()](#replace) // use Dot::replace(), **need write tests**, because used get(), set()
96
-
- [set()](#set) // done, test included
97
-
- [setArray()](#setarray) // use Dot::setarray()
98
-
- [setReference()](#setreference) // use Dot::setReference()
96
+
- [set()](#set)
97
+
- [setArray()](#setarray)
98
+
- [setReference()](#setreference)
99
99
- [toJson()](#tojson) // use Dot::toJson(), **need write tests**, because used get()
100
100
101
101
<a name="add"></a>
@@ -232,31 +232,31 @@ $asterisk->has([
232
232
233
233
With asterisk:
234
234
```php
235
-
$asterisk = new Asterisk(['1' => ['second' => 'value'],'2' => ['second' => 'value']]);
235
+
$asterisk = new \Setnemo\Asterisk(['1' => ['second' => 'value'],'2' => ['second' => 'value']]);
236
236
$asterisk->has('*.second'); // true
237
-
$asterisk = new Asterisk(['1' => ['first' => ['test' => 42]],'2' => ['second' => 'value'],'3' => ['third' => ['value' => 42]]]);
237
+
$asterisk = new \Setnemo\Asterisk(['1' => ['first' => ['test' => 42]],'2' => ['second' => 'value'],'3' => ['third' => ['value' => 42]]]);
238
238
$asterisk->has('*.*.value'); // true
239
-
$asterisk = new Asterisk(['user1' => ['name' => 'John', 'job' => 'warrior'], 'user2' => ['name' => 'Robin', 'job' => 'archer']);
239
+
$asterisk = new \Setnemo\Asterisk(['user1' => ['name' => 'John', 'job' => 'warrior'], 'user2' => ['name' => 'Robin', 'job' => 'archer']);
240
240
$asterisk->has('*.spouse'); // false
241
241
```
242
242
243
243
With asterisk and value:
244
244
```php
245
-
$asterisk = new Asterisk([]);
245
+
$asterisk = new \Setnemo\Asterisk([]);
246
246
$asterisk->has('*', false); // false
247
-
$asterisk = new Asterisk(['*' => ['second' => 'VALUE']]);
247
+
$asterisk = new \Setnemo\Asterisk(['*' => ['second' => 'VALUE']]);
248
248
$asterisk->has('*.second', 'VALUE'); // true
249
249
$asterisk->has('*.second', 'value'); // false because lowercase
250
-
$asterisk = new Asterisk(['*' => ['second' => 'value'], 0 => [0 => 0], 11 => 11]);
250
+
$asterisk = new \Setnemo\Asterisk(['*' => ['second' => 'value'], 0 => [0 => 0], 11 => 11]);
251
251
$asterisk->has('*.11', 11); // true
252
-
$asterisk = new Asterisk(['1' => ['second' => 'value'],'2' => ['second' => '-']]);
252
+
$asterisk = new \Setnemo\Asterisk(['1' => ['second' => 'value'],'2' => ['second' => '-']]);
253
253
$asterisk->has('*.second', 'value'); // false because 'second' => '-'
254
-
$asterisk = new Asterisk(['1' => ['second' => 'value'],'2' => ['second' => 'value']]);
254
+
$asterisk = new \Setnemo\Asterisk(['1' => ['second' => 'value'],'2' => ['second' => 'value']]);
255
255
$asterisk->has('*.second', 'value'); // true
256
256
```
257
257
With asterisk and value (non-strict mode):
258
258
```php
259
-
$asterisk = new Asterisk([
259
+
$asterisk = new \Setnemo\Asterisk([
260
260
'locations' => [
261
261
'Europe' => [
262
262
'Ukraine' => [
@@ -315,7 +315,7 @@ $asterisk->isEmpty();
315
315
316
316
Also works with asterisk in key:
317
317
```php
318
-
$asterisk = new Asterisk(['user1' => ['name' => 'John'], 'user2' => ['name' => 'Robin']);
318
+
$asterisk = new \Setnemo\Asterisk(['user1' => ['name' => 'John'], 'user2' => ['name' => 'Robin']);
319
319
$asterisk->isEmpty('*.name'); // false
320
320
$asterisk->isEmpty('*.spouse'); // true
321
321
```
@@ -355,12 +355,20 @@ Returns a given default value, if the given key doesn't exist:
355
355
```php
356
356
echo $asterisk->pull('user.name', 'some default value');
357
357
```
358
+
> Default value not work with asterisk in query!
358
359
359
360
Returns all the stored items as an array and clears the Dot object:
360
361
```php
361
362
$items = $asterisk->pull();
362
363
```
363
364
365
+
Key with asterisk:
366
+
```php
367
+
$asterisk = new \Setnemo\Asterisk([['user1' => ['name' => 'John', 'job' => 'warrior'], 'user2' => ['name' => 'Robin', 'job' => 'archer'],]]);
368
+
$result = $asterisk->pull('*.name'); // ['user1.name' => 'John', 'user2.name' => 'Robin']
369
+
$all = $asterisk->all(); // ['user1' => ['job' => 'warrior'], 'user2' => ['job' => 'archer'],]
370
+
371
+
```
364
372
<a name="push"></a>
365
373
### push()
366
374
@@ -380,6 +388,27 @@ $asterisk->push('John');
380
388
$array[] = 'John';
381
389
```
382
390
391
+
With asterisk:
392
+
```php
393
+
$asterisk = new \Setnemo\Asterisk([
394
+
'first_one' => ['second' => 'value'],
395
+
'first_two' => ['second' => 'value']
396
+
]);
397
+
$asterisk->push('*.second', 'John');
398
+
399
+
$asterisk->all();
400
+
/*
401
+
[
402
+
'first_one' => ['second' => ['value','VALUE']],
403
+
'first_two' => ['second' => ['value','VALUE']]
404
+
]
405
+
*/
406
+
```
407
+
408
+
Also work as Asterisk::set('key', 'value', true), where true is asterisk boolean.
409
+
See [Asterisk::set()](#set)
410
+
411
+
383
412
<a name="replace"></a>
384
413
### replace()
385
414
@@ -425,4 +454,4 @@ $asterisk->set([
425
454
426
455
## License
427
456
428
-
[MIT license](LICENSE)
457
+
[MIT license](LICENSE.txt)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4