Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Foreign.php
Go to the documentation of this file.
1 <?php
7 
12 
16 class Foreign implements FactoryInterface
17 {
21  const DEFAULT_ON_DELETE = "CASCADE";
22 
26  private $objectManager;
27 
31  private $className;
32 
36  private $resourceConnection;
37 
41  private $tableNameResolver;
42 
46  private $elementNameResolver;
47 
57  public function __construct(
58  ObjectManagerInterface $objectManager,
59  ResourceConnection $resourceConnection,
60  TableNameResolver $tableNameResolver,
61  ElementNameResolver $elementNameResolver,
62  $className = \Magento\Framework\Setup\Declaration\Schema\Dto\Constraints\Reference::class
63  ) {
64  $this->objectManager = $objectManager;
65  $this->resourceConnection = $resourceConnection;
66  $this->className = $className;
67  $this->tableNameResolver = $tableNameResolver;
68  $this->elementNameResolver = $elementNameResolver;
69  }
70 
74  public function create(array $data)
75  {
76  if (!isset($data['onDelete'])) {
77  $data['onDelete'] = self::DEFAULT_ON_DELETE;
78  }
79 
80  $data['nameWithoutPrefix'] = $this->elementNameResolver->getFKNameWithoutPrefix(
81  $data['name'],
82  $data['table'],
83  $data['column'],
84  $data['referenceTable'],
85  $data['referenceColumn']
86  );
87 
88  return $this->objectManager->create($this->className, $data);
89  }
90 }
$objectManager
Definition: bootstrap.php:17
__construct(ObjectManagerInterface $objectManager, ResourceConnection $resourceConnection, TableNameResolver $tableNameResolver, ElementNameResolver $elementNameResolver, $className=\Magento\Framework\Setup\Declaration\Schema\Dto\Constraints\Reference::class)
Definition: Foreign.php:57