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