ILIAS  trunk Revision v11.0_alpha-1831-g8615d53dadb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\components\Database\Integrity\Definition Class Reference
+ Collaboration diagram for ILIAS\components\Database\Integrity\Definition:

Public Member Functions

 __construct (private array $associations, private Ignore $ignore=new Ignore())
 
 tableName ()
 
 associations ()
 
 ignoreValues ()
 
 referenceTableName ()
 

Private Member Functions

 validate ()
 

Detailed Description

Definition at line 25 of file Definition.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\components\Database\Integrity\Definition::__construct ( private array  $associations,
private Ignore  $ignore = new Ignore() 
)
Parameters
Association[]$associations

Definition at line 30 of file Definition.php.

References ILIAS\components\Database\Integrity\Definition\validate().

+ Here is the call graph for this function:

Member Function Documentation

◆ associations()

ILIAS\components\Database\Integrity\Definition::associations ( )

◆ ignoreValues()

ILIAS\components\Database\Integrity\Definition::ignoreValues ( )
Returns
string[]

Definition at line 76 of file Definition.php.

Referenced by ILIAS\components\Database\Integrity\Integrity\check().

76  : array
77  {
78  return $this->ignore->values();
79  }
+ Here is the caller graph for this function:

◆ referenceTableName()

ILIAS\components\Database\Integrity\Definition::referenceTableName ( )

Definition at line 81 of file Definition.php.

References ILIAS\components\Database\Integrity\Definition\associations().

Referenced by ILIAS\components\Database\Integrity\Integrity\check().

81  : string
82  {
83  return $this->associations[0]->referenceField()->tableName();
84  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tableName()

ILIAS\components\Database\Integrity\Definition::tableName ( )

Definition at line 60 of file Definition.php.

References ILIAS\components\Database\Integrity\Definition\associations().

Referenced by ILIAS\components\Database\Integrity\Integrity\check().

60  : string
61  {
62  return $this->associations[0]->field()->tableName();
63  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ validate()

ILIAS\components\Database\Integrity\Definition::validate ( )
private

Definition at line 35 of file Definition.php.

References ILIAS\components\Database\Integrity\Definition\associations().

Referenced by ILIAS\components\Database\Integrity\Definition\__construct().

35  : void
36  {
37  if ($this->associations === []) {
38  throw new InvalidArgumentException('Associations must not be empty.');
39  }
40 
41  array_walk($this->associations, static function ($association): void {
42  if (!$association instanceof Association) {
43  throw new InvalidArgumentException(
44  'Associations must be of type ' . Association::class . '.'
45  );
46  }
47  });
48 
49  $first = $this->associations[0];
50 
51  foreach ($this->associations as $association) {
52  if ($association->field()->tableName() !== $first->field()->tableName() ||
53  $association->referenceField()->tableName() !== $first->referenceField()->tableName()
54  ) {
55  throw new InvalidArgumentException('All fields must have the same table');
56  }
57  }
58  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following file: