This commit is contained in:
2025-08-04 18:05:04 +03:00
parent a80c4e6f65
commit 06d92863ee
21 changed files with 928 additions and 45 deletions

View File

@@ -0,0 +1,30 @@
<?php
/**
* Отключаю несущественные инспекции (из-за Attribute)
*
* @noinspection PhpMultipleClassDeclarationsInspection
*/
namespace goodboyalex\php_db_components_pack\attributes;
use Attribute;
/**
* Атрибут указывает, что значение поля автоматически генерируется каждый раз при создании новой записи. Чаще всего
* применяется для первичных ключей.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
final readonly class AutoIncrement
{
/**
* Конструктор
*/
public function __construct ()
{
}
}

View File

@@ -0,0 +1,38 @@
<?php
/**
* Отключаю несущественные инспекции (из-за Attribute)
*
* @noinspection PhpMultipleClassDeclarationsInspection
*/
namespace goodboyalex\php_db_components_pack\attributes;
use Attribute;
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
/**
* Атрибут указывающий условие, которое нужно проверять при добавлении строки в БД.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
final readonly class Check
{
/**
* @var ConditionBuilder $Condition Условие, которое нужно проверять при добавлении строки в БД.
*/
public ConditionBuilder $Condition;
/**
* Конструктор.
*
* @param ConditionBuilder $condition Условие, которое нужно проверять при добавлении строки в БД.
*/
public function __construct (ConditionBuilder $condition)
{
$this->Condition = $condition;
}
}

View File

@@ -0,0 +1,45 @@
<?php
/**
* Отключаю несущественные инспекции (из-за Attribute)
*
* @noinspection PhpMultipleClassDeclarationsInspection
*/
namespace goodboyalex\php_db_components_pack\attributes;
use Attribute;
use goodboyalex\php_db_components_pack\enums\DBType;
/**
* Атрибут указывающий тип данных поля в БД.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
final readonly class DataType
{
/**
* @var DBType $Type Тип данных поля.
*/
public DBType $Type;
/**
* @var int $Size Размер поля (если это тип STRING)
*/
public int $Size;
/**
* Конструктор.
*
* @param DBType $type Тип данных поля.
* @param int $size Размер строкового значения (0 - MAX). Работает только для типа STRING. По умолчанию, 0.
*/
public function __construct (DBType $type, int $size = 0)
{
$this->Type = $type;
$this->Size = $size;
}
}

View File

@@ -0,0 +1,37 @@
<?php
/**
* Отключаю несущественные инспекции (из-за Attribute)
*
* @noinspection PhpMultipleClassDeclarationsInspection
*/
namespace goodboyalex\php_db_components_pack\attributes;
use Attribute;
/**
* Атрибут указывающий значение по умолчанию для столбца.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
final readonly class DefaultValue
{
/**
* @var mixed $Value Значение по умолчанию.
*/
public mixed $Value;
/**
* Конструктор.
*
* @param mixed $value Значение по умолчанию.
*/
public function __construct (mixed $value)
{
$this->Value = $value;
}
}

View File

@@ -0,0 +1,44 @@
<?php
/**
* Отключаю несущественные инспекции (из-за Attribute)
*
* @noinspection PhpMultipleClassDeclarationsInspection
*/
namespace goodboyalex\php_db_components_pack\attributes;
use Attribute;
/**
* Атрибут указывающий имя поля в БД.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
final readonly class ForeignKey
{
/**
* @var string $TableName Имя таблицы.
*/
public string $TableName;
/**
* @var string $FieldName Имя связываемого поля.
*/
public string $FieldName;
/**
* Конструктор.
*
* @param string $table Имя таблицы.
* @param string $fieldName Имя связываемого поля.
*/
public function __construct (string $table, string $fieldName)
{
$this->TableName = $table;
$this->FieldName = $fieldName;
}
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* Отключаю несущественные инспекции (из-за Attribute)
*
* @noinspection PhpMultipleClassDeclarationsInspection
*/
namespace goodboyalex\php_db_components_pack\attributes;
use Attribute;
/**
* Атрибут указывает, что на данное поле действует ограничение, которое запрещает вставлять пустые (NULL) значения
* в указанное поле.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
final readonly class NotNull
{
/**
* Конструктор
*/
public function __construct ()
{
}
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* Отключаю несущественные инспекции (из-за Attribute)
*
* @noinspection PhpMultipleClassDeclarationsInspection
*/
namespace goodboyalex\php_db_components_pack\attributes;
use Attribute;
/**
* Атрибут обеспечивает уникальность каждого значения в данном поле. Обычно применяется для уникальных
* идентификационных номеров или адресов электронной почты.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
final readonly class Unique
{
/**
* Конструктор
*/
public function __construct ()
{
}
}