20250711 1.1.1 Beta 3
This commit is contained in:
100
tests/data/MenuItemModel.php
Normal file
100
tests/data/MenuItemModel.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace goodboyalex\php_components_pack\tests\data;
|
||||
|
||||
use Exception;
|
||||
use goodboyalex\php_components_pack\classes\ClassMapper;
|
||||
use goodboyalex\php_components_pack\extensions\GUIDExtension;
|
||||
use goodboyalex\php_components_pack\interfaces\IDuplicated;
|
||||
|
||||
/**
|
||||
* Модель элемента меню.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package freecms
|
||||
* @version 0.1
|
||||
* @since 0.1
|
||||
*/
|
||||
final class MenuItemModel implements IDuplicated
|
||||
{
|
||||
/**
|
||||
* @var string $Id Идентификатор элемента.
|
||||
*/
|
||||
public string $Id {
|
||||
get {
|
||||
return $this->Id ?? GUIDExtension::GUIDEmpty;
|
||||
}
|
||||
set {
|
||||
// Проверка идентификатора
|
||||
if (!GUIDExtension::Validate($value))
|
||||
// - исключение
|
||||
throw new Exception("Неверный идентификатор (GUID)");
|
||||
|
||||
// Установка идентификатора
|
||||
$this->Id = $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @var string $Name Имя элемента.
|
||||
*/
|
||||
public string $Name;
|
||||
|
||||
/**
|
||||
* @var string|null $Description Описание элемента.
|
||||
*/
|
||||
public ?string $Description;
|
||||
|
||||
/**
|
||||
* @var string $URL Адрес URL элемента.
|
||||
*/
|
||||
public string $URL;
|
||||
|
||||
/**
|
||||
* @var bool $OpenInNewWindow Открывать ли в новом окне (добавлять к ссылке target="_blank").
|
||||
*/
|
||||
public bool $OpenInNewWindow;
|
||||
|
||||
/**
|
||||
* @var string|null $IconClass Класс иконки.
|
||||
*/
|
||||
public ?string $IconClass;
|
||||
|
||||
/**
|
||||
* @var string $ParentId Идентификатор родительского элемента.
|
||||
*/
|
||||
public string $ParentId {
|
||||
get {
|
||||
return $this->ParentId ?? GUIDExtension::GUIDEmpty;
|
||||
}
|
||||
set {
|
||||
// Проверка идентификатора
|
||||
if (!GUIDExtension::Validate($value))
|
||||
// - исключение
|
||||
throw new Exception("Неверный идентификатор (GUID)");
|
||||
|
||||
// Установка идентификатора
|
||||
$this->ParentId = $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @var int $Order Порядок.
|
||||
*/
|
||||
public int $Order;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function Duplicate (): MenuItemModel
|
||||
{
|
||||
// Создание дубликата модели
|
||||
$model = new MenuItemModel();
|
||||
|
||||
// Копирование свойств
|
||||
ClassMapper::MapClass($this, $model);
|
||||
|
||||
// Возврат дубликата
|
||||
return $model;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user