php_components_pack/sources/traits/ObjectArray/ObjectArraySpecialTrait.php
babaev-an 697f6b81b9 20250424
[Д] [ObjectArray->Add] Функция добавляет объект в массив объектов, хранящийся в данном классе (аналогично добавлению элемента в массив с помощью []).

[Д] [ObjectArray->AddRange] Функция добавляет массив объектов (или объекты, заданные с помощью array) в массив объектов, хранящийся в данном классе.

[И] [ObjectArray->Update] Добавление с помощью foreach заменено на AddRange.

[Д] [IDuplicated] Добавлен интерфейс реализации дублирования классов.

[Д] [IStoredAtSQL] Добавлен интерфейс поддержки моделей и классов, реализующих хранение свойств в SQL базе данных.
2025-04-24 07:31:59 +03:00

81 lines
3.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace goodboyalex\php_components_pack\traits\ObjectArray;
use goodboyalex\php_components_pack\classes\ObjectArray;
/**
* Часть кода класса ObjectArray, отвечающая за специальные функции.
*
* @author Александр Бабаев
* @package php_components_pack
* @version 1.0
* @since 1.0
*/
trait ObjectArraySpecialTrait
{
/**
* Очищает массив объектов, хранящийся в данном классе.
*
* @return void
*/
public function Clear (): void
{
// Очищаем массив
unset($this->Container);
// Создаем новый массив
$this->Container = [];
}
/**
* Добавляет объект в массив объектов, хранящийся в данном классе (аналогично добавлению элемента в массив с
* помощью []).
*
* @param mixed $object Объект, который будет добавлен в массив объектов, хранящийся в данном классе.
*
* @return void
*/
public function Add (mixed $object): void
{
$this->Container[] = $object;
}
/**
* Добавляет массив объектов (или объекты, заданные с помощью array) в массив объектов, хранящийся в данном классе.
*
* @param ObjectArray|array $objects Массив объектов, которые будут добавлены в массив объектов.
*
* @return void
*/
public function AddRange (ObjectArray|array $objects): void
{
// Если передан массив, то не изменяем его, а если передан объект класса ObjectArray, то конвертируем его в массив объектов
$objectsToAdd = is_array($objects) ? $objects : $objects->ToArray();
// Добавляем массив объектов
$this->Merge($objectsToAdd);
}
/**
* Возвращает массив объектов, хранящихся в данном классе.
*
* @return array Массив объектов, хранящихся в данном классе.
*/
public function ToArray (): array
{
return $this->Container;
}
/**
* Объединяет массив объектов, хранящийся в данном классе, с массивом объектов, переданным в качестве параметра.
*
* @param array $objects Массив объектов, который будет объединен с массивом объектов, хранящимся в данном классе.
*
* @return void
*/
public function Merge (array $objects): void
{
$this->Container = array_merge($this->Container, $objects);
}
}