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

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

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

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

[Д] [IStoredAtSQL] Добавлен интерфейс поддержки моделей и классов, реализующих хранение свойств в SQL базе данных.
This commit is contained in:
2025-04-24 07:31:59 +03:00
parent 8da3c1df38
commit 697f6b81b9
6 changed files with 189 additions and 38 deletions

View File

@@ -0,0 +1,81 @@
<?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);
}
}