Get Mystery Box with random crypto!

Думаю все знают https://github.com/adbario/php-dot-notation | HTTP Response 418 #УкрТґ

Думаю все знают https://github.com/adbario/php-dot-notation

Ну или как минимум пользовались подобным функционалом в Laravel

$dot->get('Europe.Ukraine.capital');

var_export($dot->all());

[
'Europe' => [
'Ukraine' => [
'capital' => 'Kyiv',
'currency' => 'UAH'
],
'Poland' => [
'capital' => 'Warsaw',
'currency' => 'PLN'
],

],
'Africa' => [
'South Africa' => [
'capital' => 'Capetown',
'currency' => 'ZAR'
],
'Nigeria' => [
'capital' => 'Abuja',
'currency' => 'NGN'
],
],
]


А что если бы это работало так?

var_export($asterisk->has('Europe.*.capital'));

Выбирало по звездочке и по факту это была вот такая вот проверка:

isset($asterisk['Europe']['Ukraine']['capital']) | isset($asterisk['Europe']['Poland']['capital'])

Если хотябы одно значение истинно, то будет true. Да, оригинальный Dot в методе has() не сравнивает значение, он проверяет именно ключ. То есть по факту можно использовать Dot, но сверху прикрутить своей логики. Делать это каждый раз, когда понадобится. Взять Dot, сделать flatten(), пройтись регуляркой и потом уже проверить значения.

А что если это будет принимать значение вторым параметром, но при этом оставить возможность делать запрос со звездочкой?
var_export($asterisk->has('Europe.*.capital', 'Kyiv')); // true

Это эквивалентно:
$asterisk['Europe']['Ukraine']['capital'] === 'Kyiv'

Так у меня появилась идея сдалать PHP Star Dot Notation. Отнаследоваться от оригинального Adbar/Dot и переопределить все методы, которые могут быть полезны со "звездочкой".

Разработку веду не спешно, без сбора требований и по ходу пытаться сделать логично и нормально. Но тут очень много вопросов как поступать в том или ином кейсе.

Как только закончу обязательно напишу об этом, а сейчас можно просто обсудить, вдруг есть вредные и не очень советы?

Подсмотреть можно тут https://github.com/setnemo/asterisk-notation