[*: ActionStateMessageModel] улучшена реализация интерфейса ISerializable. [*: ActionState] класс разбит на множество трейтов для более структурированности. [*: ActionState] улучшена реализация интерфейса ISerializable. [*: ActionState] класс внутреннего хранилища сообщений изменён на ObjectArray. [*: ActionState] улучшена реализация метода Count. [*: ActionState] улучшены реализации методов HasInfos, HasWarnings, HasErrors, IsSuccess, GetStringMessages и Clear. [*: ActionState] возвращаемое значение метода GetMessages заменено на ObjectArray.
114 lines
3.4 KiB
PHP
114 lines
3.4 KiB
PHP
<?php
|
||
|
||
namespace goodboyalex\php_components_pack\traits\ActionState;
|
||
|
||
use goodboyalex\php_components_pack\classes\ActionState;
|
||
use goodboyalex\php_components_pack\classes\ObjectArray;
|
||
use goodboyalex\php_components_pack\enums\MessageType;
|
||
use goodboyalex\php_components_pack\models\ActionStateMessageModel;
|
||
|
||
/**
|
||
* Часть кода класса ActionState, отвечающая за методы добавления сообщений.
|
||
*
|
||
* @author Александр Бабаев
|
||
* @package php_components_pack
|
||
* @version 1.0
|
||
* @since 1.0.13
|
||
*/
|
||
trait ActionStateAddTrait
|
||
{
|
||
/**
|
||
* Добавляет данные из другого состояния.
|
||
*
|
||
* @param ActionState $state Другое состояние
|
||
* @param bool $clearAllBefore Очищать сообщения перед добавлением (true) или просто добавить к текущим (false)
|
||
*
|
||
* @return void
|
||
*/
|
||
public function AddState (ActionState $state, bool $clearAllBefore = false): void
|
||
{
|
||
// Если нужно очистить список сообщений
|
||
if ($clearAllBefore)
|
||
// - то очищаю список сообщений
|
||
$this->Clear(fn (ActionStateMessageModel $message) => true);
|
||
|
||
// Добавляю сообщения из другого состояния
|
||
$this->AddRange($state->GetMessages(ActionState::GET_STRING_ALL()));
|
||
|
||
// Добавляю значение
|
||
$this->Value = $state->Value;
|
||
}
|
||
|
||
/**
|
||
* Добавляет список
|
||
*
|
||
* @param ObjectArray|array $messages Список сообщений
|
||
*
|
||
* @return void
|
||
*/
|
||
public function AddRange (ObjectArray|array $messages): void
|
||
{
|
||
// Добавляю сообщения
|
||
$this->Messages->AddRange($messages);
|
||
}
|
||
|
||
/**
|
||
* Добавляет сообщение о критической ошибке.
|
||
*
|
||
* @param string $message Сообщение
|
||
*
|
||
* @return void
|
||
*/
|
||
public function AddCritical (string $message): void
|
||
{
|
||
$this->Add(new ActionStateMessageModel(MessageType::Error, true, $message));
|
||
}
|
||
|
||
/**
|
||
* Добавление сообщения.
|
||
*
|
||
* @param ActionStateMessageModel $message Сообщение
|
||
*
|
||
* @return void
|
||
*/
|
||
public function Add (ActionStateMessageModel $message): void
|
||
{
|
||
$this->Messages->Add($message);
|
||
}
|
||
|
||
/**
|
||
* Добавляет сообщение об ошибке.
|
||
*
|
||
* @param string $message Сообщение
|
||
*
|
||
* @return void
|
||
*/
|
||
public function AddError (string $message): void
|
||
{
|
||
$this->Add(new ActionStateMessageModel(MessageType::Error, false, $message));
|
||
}
|
||
|
||
/**
|
||
* Добавляет предупреждение.
|
||
*
|
||
* @param string $message Сообщение.
|
||
*
|
||
* @return void
|
||
*/
|
||
public function AddWarning (string $message): void
|
||
{
|
||
$this->Add(new ActionStateMessageModel(MessageType::Warning, false, $message));
|
||
}
|
||
|
||
/**
|
||
* Добавляет информационное сообщение.
|
||
*
|
||
* @param string $message Сообщение.
|
||
*
|
||
* @return void
|
||
*/
|
||
public function AddInfo (string $message): void
|
||
{
|
||
$this->Add(new ActionStateMessageModel(MessageType::Info, false, $message));
|
||
}
|
||
} |