CloudCastle Support API

Obj
in package

FinalYes

Хелперы работы с объектами.

Суперсет объектных возможностей illuminate/support (object_get, class_basename, class_uses_recursive) без магии и тяжёлой рефлексии symfony/property-access: точечный доступ по цепочке свойств и геттеров, рекурсивное приведение к массиву, глубокое клонирование, интроспекция трейтов.

Tags
psalm-suppress

MixedAssignment хелпер общего назначения: значения свойств произвольных объектов — mixed по контракту

Table of Contents

Methods

classBasename()  : string
Короткое имя класса без namespace: `classBasename(App\Models\User::class)` → «User».
classUses()  : array<int, string>
Все трейты класса, включая трейты родителей и трейты трейтов.
deepClone()  : T
Глубокое клонирование: вложенные объекты в свойствах и массивах клонируются рекурсивно (в отличие от поверхностного `clone`).
fill()  : T
Заполнить публичные свойства объекта значениями из массива.
get()  : mixed
Значение по «точечному» пути через свойства и геттеры: `Obj::get($order, 'customer.address.city', '—')`.
isInstanceOfAny()  : bool
Является ли объект экземпляром хотя бы одного из классов/интерфейсов.
toArray()  : array<string|int, mixed>
Рекурсивное приведение объекта к массиву.

Methods

classBasename()

Короткое имя класса без namespace: `classBasename(App\Models\User::class)` → «User».

public static classBasename(object|class-string $class) : string
Parameters
$class : object|class-string

объект или имя класса

Return values
string

Короткое имя класса без namespace: classBasename(App\Models\User::class) → «User»

classUses()

Все трейты класса, включая трейты родителей и трейты трейтов.

public static classUses(object|class-string $class) : array<int, string>
Parameters
$class : object|class-string

объект или имя класса

Return values
array<int, string>

уникальные имена трейтов (в порядке обнаружения)

deepClone()

Глубокое клонирование: вложенные объекты в свойствах и массивах клонируются рекурсивно (в отличие от поверхностного `clone`).

public static deepClone(T $object) : T
Parameters
$object : T

исходный объект

Tags
template
Return values
T

независимая глубокая копия

fill()

Заполнить публичные свойства объекта значениями из массива.

public static fill(T $object, array<string, mixed> $values) : T

Неизвестные ключи игнорируются (fail-safe против массового присваивания несуществующих свойств).

Parameters
$object : T

целевой объект

$values : array<string, mixed>

значения по именам свойств

Tags
template
Return values
T

тот же объект (для цепочек)

get()

Значение по «точечному» пути через свойства и геттеры: `Obj::get($order, 'customer.address.city', '—')`.

public static get(object|array<string|int, mixed> $target, string $path[, mixed $default = null ]) : mixed

Каждый сегмент пробуется по порядку: публичное свойство → аксессор getSegment()/isSegment()/hasSegment() → ключ массива/ArrayAccess. Произвольные методы по имени сегмента не вызываются (fail-safe против путей из недоверенного ввода). Обрыв цепочки (null или отсутствие сегмента) возвращает default.

Parameters
$target : object|array<string|int, mixed>

объект или массив

$path : string

путь «a.b.c»

$default : mixed = null

значение при обрыве цепочки

Return values
mixed

Значение по «точечному» пути через свойства и геттеры:

isInstanceOfAny()

Является ли объект экземпляром хотя бы одного из классов/интерфейсов.

public static isInstanceOfAny(object $object, array<int, class-string> $classes) : bool
Parameters
$object : object

проверяемый объект

$classes : array<int, class-string>

классы или интерфейсы

Return values
bool

Является ли объект экземпляром хотя бы одного из классов/интерфейсов

toArray()

Рекурсивное приведение объекта к массиву.

public static toArray(object $object[, int $maxDepth = 16 ]) : array<string|int, mixed>

JsonSerializable уважается; для прочих объектов берутся публичные свойства. Вложенные объекты и массивы обходятся рекурсивно с ограничением глубины (fail-safe от циклов).

Parameters
$object : object

объект

$maxDepth : int = 16

предельная глубина рекурсии

Return values
array<string|int, mixed>
On this page

Search results