Magento Extensions Rating 2024
EXTENSIONS BY CATEGORY
B2B (Business-To-Business)
Blog
Customer
ERP (Enterprise Resource Planning)
Mega Menu
One Step Checkout
Order
POS (Point Of Sale)
Search
Shopping Cart
Sitemap
SEO
Social
Stock & Inventory Management
EXTENSIONS BY DEVELOPER
aheadWorks
Amasty
Boost My Shop
BSS Commerce
Magestore
MageWorx
Mirasvit
Templates Master
Wyomind
XTENTO
Magento 2 Documentation
Magento 2 Documentation
2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
vendor
magento
framework
Setup
Declaration
Schema
Declaration
ValidationRules
CheckReferenceColumnHasIndex.php
Go to the documentation of this file.
1
<?php
6
namespace
Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationRules
;
7
8
use
Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface
;
9
use
Magento\Framework\Setup\Declaration\Schema\Dto\Constraints\Internal
;
10
use
Magento\Framework\Setup\Declaration\Schema\Dto\Index
;
11
use
Magento\Framework\Setup\Declaration\Schema\Dto\Schema
;
12
19
class
CheckReferenceColumnHasIndex
implements
ValidationInterface
20
{
24
const
ERROR_TYPE
=
'reference_column_without_unique_index'
;
25
29
const
ERROR_MESSAGE
=
'Reference column %s in reference table %s do not have index'
;
30
34
public
function
validate
(
Schema
$schema
)
35
{
36
$errors
= [];
37
foreach
(
$schema
->getTables() as
$table
) {
38
foreach
(
$table
->getReferenceConstraints() as
$constraint
) {
39
$referenceColumnName =
$constraint
->getReferenceColumn()->getName();
40
$indexesAndConstraints = array_merge(
41
$constraint
->getReferenceTable()->getConstraints(),
42
$constraint
->getReferenceTable()->getIndexes()
43
);
44
foreach
($indexesAndConstraints as $key) {
45
if
($key instanceof
Internal
|| $key instanceof
Index
) {
46
if
(in_array($referenceColumnName, $key->getColumnNames())) {
47
continue
2;
48
}
49
}
50
}
51
52
$errors
[] = [
53
'column'
=> $referenceColumnName,
54
'message'
=> sprintf(
55
self::ERROR_MESSAGE,
56
$referenceColumnName,
57
$constraint
->getReferenceTable()->getName()
58
)
59
];
60
}
61
}
62
63
return
$errors
;
64
}
65
}
$constraint
$constraint
Definition:
pre_composer_update_2.3.php:135
Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface
Definition:
ValidationInterface.php:13
Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationRules\CheckReferenceColumnHasIndex\validate
validate(Schema $schema)
Definition:
CheckReferenceColumnHasIndex.php:34
Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationRules
Definition:
AutoIncrementColumnValidation.php:6
Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationRules\CheckReferenceColumnHasIndex\ERROR_MESSAGE
const ERROR_MESSAGE
Definition:
CheckReferenceColumnHasIndex.php:29
Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationRules\CheckReferenceColumnHasIndex\ERROR_TYPE
const ERROR_TYPE
Definition:
CheckReferenceColumnHasIndex.php:24
Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationRules\CheckReferenceColumnHasIndex
Definition:
CheckReferenceColumnHasIndex.php:19
Magento\Framework\Setup\Declaration\Schema\Dto\Schema
Definition:
Schema.php:15
$schema
$schema
Definition:
configured_price.phtml:9
$table
$table
Definition:
trigger.php:14
Magento\Framework\Setup\Declaration\Schema\Dto\Index
Definition:
Index.php:12
$errors
$errors
Definition:
overview.phtml:9
Magento\Framework\Setup\Declaration\Schema\Dto\Constraints\Internal
Definition:
Internal.php:17