Size: a a a

2020 September 06

АГ

Алексей Гевондян... in Yii Framework 3
типа - не рой себе яму чувак)
источник

СП

Сергей Предводителев... in Yii Framework 3
Nex Otaku
Если ты сделаешь как я описал, то всё будет исправлено в том кейсе.
источник

NO

Nex Otaku in Yii Framework 3
Проблема указанного теста, что для set и для get разный приоритет точки над одноуровневым синтаксисом. Отсюда и проблема. Привести и get и set к приоритету одноуровневого синтаксиса, и проблема исчезнет.
источник

T

TradersVE in Yii Framework 3
@predvoditelev If you read the phpdoc of the class you will discover the points in the key what it means.
источник

СП

Сергей Предводителев... in Yii Framework 3
Nex Otaku
Проблема указанного теста, что для set и для get разный приоритет точки над одноуровневым синтаксисом. Отсюда и проблема. Привести и get и set к приоритету одноуровневого синтаксиса, и проблема исчезнет.
В таком варианте согласен
источник

СП

Сергей Предводителев... in Yii Framework 3
Но тут уж не мне решать как делать :) Я хз где и в каком виде это уже используется))
источник

NO

Nex Otaku in Yii Framework 3
Это новый фреймворк. Тут нет BC, друг. Делай как правильно
источник

СП

Сергей Предводителев... in Yii Framework 3
Nex Otaku
Это новый фреймворк. Тут нет BC, друг. Делай как правильно
Сделаешь issue ?
источник

АГ

Алексей Гевондян... in Yii Framework 3
т.е. получается что get('a.b.c', ['a' => ['b' => ['c' => 1]]]) и потом set ($new, 'a.b.c', 1) приведет к тому, что в $new будет ['a.b.c' => 1], даже если там уже есть такая же структура как в исходном массиве.... такое себе это все.
источник

NO

Nex Otaku in Yii Framework 3
Занят, убегаю ( сорян
источник

T

TradersVE in Yii Framework 3
* Retrieves the value of an array element or object property with the given key or property name.
* If the key does not exist in the array, the default value will be returned instead.
* Not used when getting value from an object.
*
* The key may be specified in a dot format to retrieve the value of a sub-array or the property
* of an embedded object. In particular, if the key is x.y.z, then the returned value would
* be $array['x']['y']['z'] or $array->x->y->z (if $array is an object). If $array['x']
* or $array->x is neither an array nor an object, the default value will be returned.
* Note that if the array already has an element x.y.z, then its value will be returned
* instead of going through the sub-arrays. So it is better to be done specifying an array of key names
    * like ['x', 'y', 'z'].
источник

СП

Сергей Предводителев... in Yii Framework 3
TradersVE
* Retrieves the value of an array element or object property with the given key or property name.
* If the key does not exist in the array, the default value will be returned instead.
* Not used when getting value from an object.
*
* The key may be specified in a dot format to retrieve the value of a sub-array or the property
* of an embedded object. In particular, if the key is x.y.z, then the returned value would
* be $array['x']['y']['z'] or $array->x->y->z (if $array is an object). If $array['x']
* or $array->x is neither an array nor an object, the default value will be returned.
* Note that if the array already has an element x.y.z, then its value will be returned
* instead of going through the sub-arrays. So it is better to be done specifying an array of key names
    * like ['x', 'y', 'z'].
Problem here: Note that if the array already has an element x.y.z, then its value will be returned instead of going through the sub-arrays.
источник

АГ

Алексей Гевондян... in Yii Framework 3
вообще, да, точки в ключах с объектами работать будут конечно... но такое себе. лучше наверное возвращать null просто
источник

СП

Сергей Предводителев... in Yii Framework 3
В общем с точками удобно, но не однозначно очень :)
источник

АГ

Алексей Гевондян... in Yii Framework 3
на такое можно нарваться, если какая-нибудь древовидная структура разложена в плоский массив вида ['1.1.1' => 'dsfdsadsfasd', '1.2.1' => 'sdfasd fas'] ... в общем лучше когда все просто и без лишних вариантов. если нужна какая-то особая логика, то другой класс сделать надо... можно кстати правда сделать 2 метода, один, который работает и с массивами и с объектами, будет требовать не допускать точек в ключе, а второй просто не будет допускать работы с объектами... в общем да, это все проблемно, любой вариант - это некий компромисс, свои плюсы, свои минусы.
источник

СП

Сергей Предводителев... in Yii Framework 3
Может вообще уйти от точек... $key массив - лезем во внутренности, строка - тупо берём элемент.
источник

АГ

Алексей Гевондян... in Yii Framework 3
кстати да, это разумнее и лучше. нужно по точкам разбить - сделают эксплод
источник

АГ

Алексей Гевондян... in Yii Framework 3
все равно обычно хардкодятся ключи
источник

СП

Сергей Предводителев... in Yii Framework 3
Алексей Гевондян
на такое можно нарваться, если какая-нибудь древовидная структура разложена в плоский массив вида ['1.1.1' => 'dsfdsadsfasd', '1.2.1' => 'sdfasd fas'] ... в общем лучше когда все просто и без лишних вариантов. если нужна какая-то особая логика, то другой класс сделать надо... можно кстати правда сделать 2 метода, один, который работает и с массивами и с объектами, будет требовать не допускать точек в ключе, а второй просто не будет допускать работы с объектами... в общем да, это все проблемно, любой вариант - это некий компромисс, свои плюсы, свои минусы.
исчезает тогда возможность получеть значение из смешанной структуры массив/олбъекты.

['x' => $object->y]
источник

СП

Сергей Предводителев... in Yii Framework 3
Алексей Гевондян
кстати да, это разумнее и лучше. нужно по точкам разбить - сделают эксплод
+1
источник