PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.35.1
MailPoet – Newsletters, Email Marketing, and Automation v5.35.1
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / doctrine / orm / src / Persisters / Entity / SingleTablePersister.php
mailpoet / vendor-prefixed / doctrine / orm / src / Persisters / Entity Last commit date
AbstractEntityInheritancePersister.php 9 months ago BasicEntityPersister.php 8 months ago CachedPersisterContext.php 9 months ago EntityPersister.php 9 months ago JoinedSubclassPersister.php 9 months ago SingleTablePersister.php 9 months ago index.php 9 months ago
SingleTablePersister.php
109 lines
1 <?php
2 declare (strict_types=1);
3 namespace MailPoetVendor\Doctrine\ORM\Persisters\Entity;
4 if (!defined('ABSPATH')) exit;
5 use MailPoetVendor\Doctrine\Common\Collections\Criteria;
6 use MailPoetVendor\Doctrine\ORM\Internal\SQLResultCasing;
7 use MailPoetVendor\Doctrine\ORM\Mapping\ClassMetadata;
8 use MailPoetVendor\Doctrine\ORM\Utility\PersisterHelper;
9 use function array_flip;
10 use function array_intersect;
11 use function array_map;
12 use function array_unshift;
13 use function implode;
14 class SingleTablePersister extends AbstractEntityInheritancePersister
15 {
16 use SQLResultCasing;
17 protected function getDiscriminatorColumnTableName()
18 {
19 return $this->class->getTableName();
20 }
21 protected function getSelectColumnsSQL()
22 {
23 if ($this->currentPersisterContext->selectColumnListSql !== null && $this->isFilterHashUpToDate()) {
24 return $this->currentPersisterContext->selectColumnListSql;
25 }
26 $columnList[] = parent::getSelectColumnsSQL();
27 $rootClass = $this->em->getClassMetadata($this->class->rootEntityName);
28 $tableAlias = $this->getSQLTableAlias($rootClass->name);
29 // Append discriminator column
30 $discrColumn = $this->class->getDiscriminatorColumn();
31 $discrColumnName = $discrColumn['name'];
32 $discrColumnType = $discrColumn['type'];
33 $columnList[] = $tableAlias . '.' . $discrColumnName;
34 $resultColumnName = $this->getSQLResultCasing($this->platform, $discrColumnName);
35 $this->currentPersisterContext->rsm->setDiscriminatorColumn('r', $resultColumnName);
36 $this->currentPersisterContext->rsm->addMetaResult('r', $resultColumnName, $discrColumnName, \false, $discrColumnType);
37 // Append subclass columns
38 foreach ($this->class->subClasses as $subClassName) {
39 $subClass = $this->em->getClassMetadata($subClassName);
40 // Regular columns
41 foreach ($subClass->fieldMappings as $fieldName => $mapping) {
42 if (isset($mapping['inherited'])) {
43 continue;
44 }
45 $columnList[] = $this->getSelectColumnSQL($fieldName, $subClass);
46 }
47 // Foreign key columns
48 foreach ($subClass->associationMappings as $assoc) {
49 if (!$assoc['isOwningSide'] || !($assoc['type'] & ClassMetadata::TO_ONE) || isset($assoc['inherited'])) {
50 continue;
51 }
52 $targetClass = $this->em->getClassMetadata($assoc['targetEntity']);
53 foreach ($assoc['joinColumns'] as $joinColumn) {
54 $columnList[] = $this->getSelectJoinColumnSQL($tableAlias, $joinColumn['name'], $this->quoteStrategy->getJoinColumnName($joinColumn, $subClass, $this->platform), PersisterHelper::getTypeOfColumn($joinColumn['referencedColumnName'], $targetClass, $this->em));
55 }
56 }
57 }
58 $this->currentPersisterContext->selectColumnListSql = implode(', ', $columnList);
59 $this->updateFilterHash();
60 return $this->currentPersisterContext->selectColumnListSql;
61 }
62 protected function getInsertColumnList()
63 {
64 $columns = parent::getInsertColumnList();
65 // Add discriminator column to the INSERT SQL
66 $columns[] = $this->class->getDiscriminatorColumn()['name'];
67 return $columns;
68 }
69 protected function getSQLTableAlias($className, $assocName = '')
70 {
71 return parent::getSQLTableAlias($this->class->rootEntityName, $assocName);
72 }
73 protected function getSelectConditionSQL(array $criteria, $assoc = null)
74 {
75 $conditionSql = parent::getSelectConditionSQL($criteria, $assoc);
76 if ($conditionSql) {
77 $conditionSql .= ' AND ';
78 }
79 return $conditionSql . $this->getSelectConditionDiscriminatorValueSQL();
80 }
81 protected function getSelectConditionCriteriaSQL(Criteria $criteria)
82 {
83 $conditionSql = parent::getSelectConditionCriteriaSQL($criteria);
84 if ($conditionSql) {
85 $conditionSql .= ' AND ';
86 }
87 return $conditionSql . $this->getSelectConditionDiscriminatorValueSQL();
88 }
89 protected function getSelectConditionDiscriminatorValueSQL()
90 {
91 $values = array_map([$this->conn, 'quote'], array_flip(array_intersect($this->class->discriminatorMap, $this->class->subClasses)));
92 if ($this->class->discriminatorValue !== null) {
93 // discriminators can be 0
94 array_unshift($values, $this->conn->quote($this->class->discriminatorValue));
95 }
96 $discColumnName = $this->class->getDiscriminatorColumn()['name'];
97 $values = implode(', ', $values);
98 $tableAlias = $this->getSQLTableAlias($this->class->name);
99 return $tableAlias . '.' . $discColumnName . ' IN (' . $values . ')';
100 }
101 protected function generateFilterConditionSQL(ClassMetadata $targetEntity, $targetTableAlias)
102 {
103 // Ensure that the filters are applied to the root entity of the inheritance tree
104 $targetEntity = $this->em->getClassMetadata($targetEntity->rootEntityName);
105 // we don't care about the $targetTableAlias, in a STI there is only one table.
106 return parent::generateFilterConditionSQL($targetEntity, $targetTableAlias);
107 }
108 }
109