20250807
This commit is contained in:
@@ -38,7 +38,13 @@
|
||||
if (count($ignoredOperations) === 0)
|
||||
// - то по умолчанию игнорируем все операции
|
||||
$ignoredOperations = [
|
||||
DBOperation::Insert, DBOperation::Get, DBOperation::Update, DBOperation::Delete, DBOperation::Count
|
||||
DBOperation::Insert,
|
||||
DBOperation::Get,
|
||||
DBOperation::Update,
|
||||
DBOperation::Delete,
|
||||
DBOperation::Count,
|
||||
DBOperation::CreateTable,
|
||||
DBOperation::DropTable
|
||||
];
|
||||
|
||||
// Инициализируем массив
|
||||
|
@@ -6,10 +6,10 @@
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_components_pack\classes\ObjectArray;
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\enums\DBDriver;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
|
@@ -6,10 +6,10 @@
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_components_pack\classes\ObjectArray;
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\enums\DBDriver;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
|
@@ -6,10 +6,10 @@
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_components_pack\classes\ObjectArray;
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\enums\DBDriver;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use PDO;
|
||||
use PDOException;
|
||||
|
||||
|
@@ -6,10 +6,10 @@
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_components_pack\classes\ObjectArray;
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\enums\DBDriver;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use PDO;
|
||||
use PDOException;
|
||||
|
||||
|
@@ -6,10 +6,10 @@
|
||||
namespace goodboyalex\php_db_components_pack\classes\tm_drivers;
|
||||
|
||||
use goodboyalex\php_components_pack\classes\ObjectArray;
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\enums\DBDriver;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
use goodboyalex\php_db_components_pack\interfaces\ITableManager;
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use PDO;
|
||||
use PDOException;
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
namespace goodboyalex\php_db_components_pack\interfaces;
|
||||
|
||||
use goodboyalex\php_components_pack\classes\ObjectArray;
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
@@ -47,7 +47,7 @@
|
||||
/**
|
||||
* Разбирает столбец для SQL-запроса создания.
|
||||
*
|
||||
* @param DataBaseColumn $column Столбец таблицы.
|
||||
* @param \goodboyalex\php_db_components_pack\models\DataBaseColumn $column Столбец таблицы.
|
||||
*
|
||||
* @return string SQL-представление столбца.
|
||||
*/
|
||||
|
@@ -1,9 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\classes;
|
||||
namespace goodboyalex\php_db_components_pack\models;
|
||||
|
||||
use Closure;
|
||||
use goodboyalex\php_components_pack\extensions\StringExtension;
|
||||
|
||||
/**
|
||||
* Класс свойства класса, реализующего интерфейс IDBItem.
|
||||
@@ -25,11 +24,6 @@
|
||||
*/
|
||||
public mixed $Value;
|
||||
|
||||
/**
|
||||
* @var string $FieldName Имя поля в таблице БД.
|
||||
*/
|
||||
public string $FieldName;
|
||||
|
||||
/**
|
||||
* @var DataBaseColumn $Column Информация об ячейке.
|
||||
*/
|
||||
@@ -60,14 +54,13 @@
|
||||
*
|
||||
* @param string $name Имя свойства.
|
||||
* @param mixed|null $value Значение свойства (ещё не конвертированное!).
|
||||
* @param string $fieldName Имя поля в таблице БД.
|
||||
* @param DataBaseColumn $column Информация об ячейке.
|
||||
* @param bool $isIgnored Признак того, что свойство игнорируется при сохранении в / загрузке из БД.
|
||||
* @param callable|null $ConvertToDB Конвертер значения свойства в значение поля БД.
|
||||
* @param Closure|null $ConvertFromDB Конвертер значения поля БД в значение свойства.
|
||||
* @param Closure|null $Compare Функция сравнения значений свойства.
|
||||
*/
|
||||
public function __construct (string $name = '', mixed $value = null, string $fieldName = '',
|
||||
public function __construct (string $name = '', mixed $value = null,
|
||||
DataBaseColumn $column = new DataBaseColumn(), bool $isIgnored = false, ?callable $ConvertToDB = null,
|
||||
?Closure $ConvertFromDB = null, ?Closure $Compare = null)
|
||||
{
|
||||
@@ -76,8 +69,7 @@
|
||||
$this->Name = $name;
|
||||
// - установка значения свойства (ещё не конвертированного)
|
||||
$this->Value = $value;
|
||||
// - установка имени поля в таблице БД
|
||||
$this->FieldName = StringExtension::IsNullOrWhitespace($fieldName) ? $name : $fieldName;
|
||||
|
||||
// - установка свойств столбца
|
||||
$this->Column = $column;
|
||||
// - установка признака того, что свойство игнорируется при сохранении в / загрузке из БД
|
@@ -1,8 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\classes;
|
||||
namespace goodboyalex\php_db_components_pack\models;
|
||||
|
||||
use goodboyalex\php_components_pack\classes\Tuple;
|
||||
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
|
||||
/**
|
@@ -23,11 +23,11 @@
|
||||
use goodboyalex\php_db_components_pack\attributes\PrimaryKey;
|
||||
use goodboyalex\php_db_components_pack\attributes\Unique;
|
||||
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
|
||||
use goodboyalex\php_db_components_pack\classes\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\classes\DBItemProperty;
|
||||
use goodboyalex\php_db_components_pack\enums\DBOperation;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\models\DBItemProperty;
|
||||
use PDO;
|
||||
use ReflectionClass;
|
||||
use ReflectionException;
|
||||
@@ -235,7 +235,7 @@
|
||||
|
||||
|
||||
// - создаю объект свойства
|
||||
$item = new DBItemProperty($key, $value, $fieldName, $columnHeader, $isIgnore, $converterToDB,
|
||||
$item = new DBItemProperty($key, $value, $columnHeader, $isIgnore, $converterToDB,
|
||||
$converterFromDB, $compareFunc);
|
||||
|
||||
// - добавляю в массив
|
||||
@@ -294,7 +294,7 @@
|
||||
continue;
|
||||
|
||||
// - получаю значение имени поля
|
||||
$fieldName = $property->FieldName;
|
||||
$fieldName = $property->Column->Name;
|
||||
|
||||
// - преобразую тип
|
||||
$value = call_user_func($property->ConvertToDB, $property->Value);
|
||||
@@ -343,10 +343,10 @@
|
||||
continue;
|
||||
|
||||
// - получаю имя поля
|
||||
$fieldName = $property->FieldName;
|
||||
$fieldName = $property->Column->Name;
|
||||
|
||||
// - добавляю в массив отношений
|
||||
$propertiesRelationship[$fieldName] = [$property->Name, $property->ConverterFromDB];
|
||||
$propertiesRelationship[$fieldName] = [$property->Name, $property->ConvertFromDB];
|
||||
}
|
||||
|
||||
// Проходим элементы массива из БД
|
||||
|
@@ -8,7 +8,6 @@
|
||||
|
||||
use Exception;
|
||||
use goodboyalex\php_components_pack\classes\ObjectArray;
|
||||
use goodboyalex\php_db_components_pack\classes\DBItemProperty;
|
||||
use goodboyalex\php_db_components_pack\classes\tm_drivers\MSSQLTableManager;
|
||||
use goodboyalex\php_db_components_pack\classes\tm_drivers\MySQLTableManager;
|
||||
use goodboyalex\php_db_components_pack\classes\tm_drivers\OracleDBTableManager;
|
||||
@@ -17,6 +16,7 @@
|
||||
use goodboyalex\php_db_components_pack\enums\DBDriver;
|
||||
use goodboyalex\php_db_components_pack\enums\DBOperation;
|
||||
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
|
||||
use goodboyalex\php_db_components_pack\models\DBItemProperty;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
|
@@ -7,9 +7,9 @@
|
||||
|
||||
use Exception;
|
||||
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
|
||||
use goodboyalex\php_db_components_pack\classes\DBItemProperty;
|
||||
use goodboyalex\php_db_components_pack\enums\DBOperation;
|
||||
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
|
||||
use goodboyalex\php_db_components_pack\models\DBItemProperty;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
@@ -80,11 +80,11 @@
|
||||
/**
|
||||
* Для каждого свойства...
|
||||
*
|
||||
* @var DBItemProperty $property Свойство.
|
||||
* @var \goodboyalex\php_db_components_pack\models\DBItemProperty $property Свойство.
|
||||
*/
|
||||
foreach ($properties as $property) {
|
||||
// ... если это первичный ключ
|
||||
if ($property->IsPrimaryKey)
|
||||
if ($property->Column->IsPrimaryKey)
|
||||
// - то пропускаю его
|
||||
continue;
|
||||
|
||||
|
Reference in New Issue
Block a user