ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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.

76 : array
77 {
78 return $this->ignore->values();
79 }

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

+ Here is the caller graph for this function:

◆ referenceTableName()

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

Definition at line 81 of file Definition.php.

81 : string
82 {
83 return $this->associations[0]->referenceField()->tableName();
84 }

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

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

+ 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.

60 : string
61 {
62 return $this->associations[0]->field()->tableName();
63 }

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

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

+ 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.

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 }

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

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

+ 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: