[*: ActionStateMessageModel] улучшена реализация интерфейса ISerializable. [*: ActionState] класс разбит на множество трейтов для более структурированности. [*: ActionState] улучшена реализация интерфейса ISerializable. [*: ActionState] класс внутреннего хранилища сообщений изменён на ObjectArray. [*: ActionState] улучшена реализация метода Count. [*: ActionState] улучшены реализации методов HasInfos, HasWarnings, HasErrors, IsSuccess, GetStringMessages и Clear. [*: ActionState] возвращаемое значение метода GetMessages заменено на ObjectArray.
68 lines
2.3 KiB
PHP
68 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace goodboyalex\php_components_pack\traits\ActionState;
|
|
|
|
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 ActionStateHasTrait
|
|
{
|
|
/**
|
|
* Проверяет, есть ли информационные сообщения.
|
|
*
|
|
* @return bool Наличие сообщений
|
|
*/
|
|
public function HasInfos (): bool
|
|
{
|
|
return $this->Messages->IsExist(fn (ActionStateMessageModel $message)
|
|
=> $message->MessageType
|
|
== MessageType::Info);
|
|
}
|
|
|
|
/**
|
|
* Проверяет, успешно ли завершилась операция.
|
|
*
|
|
* @param bool $onlyCritical Игнорировать все некритические ошибки и предупреждения (не рекомендуется!)
|
|
*
|
|
* @return bool Успешно ли завершилась операция.
|
|
*/
|
|
public function IsSuccess (bool $onlyCritical = false): bool
|
|
{
|
|
return ($onlyCritical) ? !$this->HasErrors($onlyCritical) : !$this->HasErrors() && !$this->HasWarnings();
|
|
}
|
|
|
|
/**
|
|
* Проверяет, есть ли ошибки.
|
|
*
|
|
* @param bool $onlyCritical Учитывать только критические ошибки.
|
|
*
|
|
* @return bool Наличие ошибок.
|
|
*/
|
|
public function HasErrors (bool $onlyCritical = false): bool
|
|
{
|
|
return $this->Messages->IsExist(fn (ActionStateMessageModel $message): bool
|
|
=> $onlyCritical
|
|
? $message->MessageType == MessageType::Error && $message->IsCritical
|
|
: $message->MessageType == MessageType::Error);
|
|
}
|
|
|
|
/**
|
|
* Проверяет, есть ли предупреждения.
|
|
*
|
|
* @return bool Наличие предупреждений
|
|
*/
|
|
public function HasWarnings (): bool
|
|
{
|
|
return $this->Messages->IsExist(fn (ActionStateMessageModel $message)
|
|
=> $message->MessageType
|
|
== MessageType::Warning);
|
|
}
|
|
} |