PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.0
MailPoet – Newsletters, Email Marketing, and Automation v5.36.0
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 / Mapping / MappingException.php
mailpoet / vendor-prefixed / doctrine / orm / src / Mapping Last commit date
Builder 9 months ago Driver 9 months ago Exception 9 months ago Reflection 9 months ago Annotation.php 9 months ago AnsiQuoteStrategy.php 9 months ago AssociationOverride.php 9 months ago AssociationOverrides.php 9 months ago AttributeOverride.php 9 months ago AttributeOverrides.php 9 months ago Cache.php 9 months ago ChainTypedFieldMapper.php 9 months ago ChangeTrackingPolicy.php 9 months ago ClassMetadata.php 9 months ago ClassMetadataFactory.php 9 months ago ClassMetadataInfo.php 9 months ago Column.php 9 months ago ColumnResult.php 9 months ago CustomIdGenerator.php 9 months ago DefaultEntityListenerResolver.php 9 months ago DefaultNamingStrategy.php 9 months ago DefaultQuoteStrategy.php 9 months ago DefaultTypedFieldMapper.php 9 months ago DiscriminatorColumn.php 9 months ago DiscriminatorMap.php 9 months ago Embeddable.php 9 months ago Embedded.php 9 months ago Entity.php 9 months ago EntityListenerResolver.php 9 months ago EntityListeners.php 9 months ago EntityResult.php 9 months ago FieldResult.php 9 months ago GeneratedValue.php 9 months ago HasLifecycleCallbacks.php 9 months ago Id.php 9 months ago Index.php 9 months ago InheritanceType.php 9 months ago InverseJoinColumn.php 9 months ago JoinColumn.php 9 months ago JoinColumnProperties.php 9 months ago JoinColumns.php 9 months ago JoinTable.php 9 months ago ManyToMany.php 9 months ago ManyToOne.php 9 months ago MappedSuperclass.php 9 months ago MappingAttribute.php 9 months ago MappingException.php 9 months ago NamedNativeQueries.php 9 months ago NamedNativeQuery.php 9 months ago NamedQueries.php 9 months ago NamedQuery.php 9 months ago NamingStrategy.php 9 months ago OneToMany.php 9 months ago OneToOne.php 9 months ago OrderBy.php 9 months ago PostLoad.php 9 months ago PostPersist.php 9 months ago PostRemove.php 9 months ago PostUpdate.php 9 months ago PreFlush.php 9 months ago PrePersist.php 9 months ago PreRemove.php 9 months ago PreUpdate.php 9 months ago QuoteStrategy.php 9 months ago ReflectionEmbeddedProperty.php 9 months ago ReflectionEnumProperty.php 9 months ago ReflectionReadonlyProperty.php 9 months ago SequenceGenerator.php 9 months ago SqlResultSetMapping.php 9 months ago SqlResultSetMappings.php 9 months ago Table.php 9 months ago TypedFieldMapper.php 9 months ago UnderscoreNamingStrategy.php 9 months ago UniqueConstraint.php 9 months ago Version.php 9 months ago
MappingException.php
349 lines
1 <?php
2 declare (strict_types=1);
3 namespace MailPoetVendor\Doctrine\ORM\Mapping;
4 if (!defined('ABSPATH')) exit;
5 use BackedEnum;
6 use MailPoetVendor\Doctrine\ORM\Exception\ORMException;
7 use LibXMLError;
8 use ReflectionException;
9 use ValueError;
10 use function array_keys;
11 use function array_map;
12 use function array_values;
13 use function get_debug_type;
14 use function get_parent_class;
15 use function implode;
16 use function sprintf;
17 use const PHP_EOL;
18 class MappingException extends ORMException
19 {
20 public static function pathRequired()
21 {
22 return new self('Specifying the paths to your entities is required ' . 'in the AnnotationDriver to retrieve all class names.');
23 }
24 public static function identifierRequired($entityName)
25 {
26 $parent = get_parent_class($entityName);
27 if ($parent !== \false) {
28 return new self(sprintf('No identifier/primary key specified for Entity "%s" sub class of "%s". Every Entity must have an identifier/primary key.', $entityName, $parent));
29 }
30 return new self(sprintf('No identifier/primary key specified for Entity "%s". Every Entity must have an identifier/primary key.', $entityName));
31 }
32 public static function invalidInheritanceType($entityName, $type)
33 {
34 return new self(sprintf("The inheritance type '%s' specified for '%s' does not exist.", $type, $entityName));
35 }
36 public static function generatorNotAllowedWithCompositeId()
37 {
38 return new self("Id generators can't be used with a composite id.");
39 }
40 public static function missingFieldName($entity)
41 {
42 return new self(sprintf("The field or association mapping misses the 'fieldName' attribute in entity '%s'.", $entity));
43 }
44 public static function missingTargetEntity($fieldName)
45 {
46 return new self(sprintf("The association mapping '%s' misses the 'targetEntity' attribute.", $fieldName));
47 }
48 public static function missingSourceEntity($fieldName)
49 {
50 return new self(sprintf("The association mapping '%s' misses the 'sourceEntity' attribute.", $fieldName));
51 }
52 public static function missingEmbeddedClass($fieldName)
53 {
54 return new self(sprintf("The embed mapping '%s' misses the 'class' attribute.", $fieldName));
55 }
56 public static function mappingFileNotFound($entityName, $fileName)
57 {
58 return new self(sprintf("No mapping file found named '%s' for class '%s'.", $fileName, $entityName));
59 }
60 public static function invalidOverrideFieldName($className, $fieldName)
61 {
62 return new self(sprintf("Invalid field override named '%s' for class '%s'.", $fieldName, $className));
63 }
64 public static function invalidOverrideFieldType($className, $fieldName)
65 {
66 return new self(sprintf("The column type of attribute '%s' on class '%s' could not be changed.", $fieldName, $className));
67 }
68 public static function mappingNotFound($className, $fieldName)
69 {
70 return new self(sprintf("No mapping found for field '%s' on class '%s'.", $fieldName, $className));
71 }
72 public static function queryNotFound($className, $queryName)
73 {
74 return new self(sprintf("No query found named '%s' on class '%s'.", $queryName, $className));
75 }
76 public static function resultMappingNotFound($className, $resultName)
77 {
78 return new self(sprintf("No result set mapping found named '%s' on class '%s'.", $resultName, $className));
79 }
80 public static function emptyQueryMapping($entity, $queryName)
81 {
82 return new self(sprintf('Query named "%s" in "%s" could not be empty.', $queryName, $entity));
83 }
84 public static function nameIsMandatoryForQueryMapping($className)
85 {
86 return new self(sprintf("Query name on entity class '%s' is not defined.", $className));
87 }
88 public static function missingQueryMapping($entity, $queryName)
89 {
90 return new self(sprintf('Query named "%s" in "%s requires a result class or result set mapping.', $queryName, $entity));
91 }
92 public static function missingResultSetMappingEntity($entity, $resultName)
93 {
94 return new self(sprintf('Result set mapping named "%s" in "%s requires a entity class name.', $resultName, $entity));
95 }
96 public static function missingResultSetMappingFieldName($entity, $resultName)
97 {
98 return new self(sprintf('Result set mapping named "%s" in "%s requires a field name.', $resultName, $entity));
99 }
100 public static function nameIsMandatoryForSqlResultSetMapping($className)
101 {
102 return new self(sprintf("Result set mapping name on entity class '%s' is not defined.", $className));
103 }
104 public static function oneToManyRequiresMappedBy(string $entityName, string $fieldName) : MappingException
105 {
106 return new self(sprintf("OneToMany mapping on entity '%s' field '%s' requires the 'mappedBy' attribute.", $entityName, $fieldName));
107 }
108 public static function joinTableRequired($fieldName)
109 {
110 return new self(sprintf("The mapping of field '%s' requires an the 'joinTable' attribute.", $fieldName));
111 }
112 public static function missingRequiredOption($field, $expectedOption, $hint = '')
113 {
114 $message = "The mapping of field '" . $field . "' is invalid: The option '" . $expectedOption . "' is required.";
115 if (!empty($hint)) {
116 $message .= ' (Hint: ' . $hint . ')';
117 }
118 return new self($message);
119 }
120 public static function invalidMapping($fieldName)
121 {
122 return new self(sprintf("The mapping of field '%s' is invalid.", $fieldName));
123 }
124 public static function reflectionFailure($entity, ReflectionException $previousException)
125 {
126 return new self(sprintf('An error occurred in %s', $entity), 0, $previousException);
127 }
128 public static function joinColumnMustPointToMappedField($className, $joinColumn)
129 {
130 return new self(sprintf('The column %s must be mapped to a field in class %s since it is referenced by a join column of another class.', $joinColumn, $className));
131 }
132 public static function classIsNotAValidEntityOrMappedSuperClass($className)
133 {
134 $parent = get_parent_class($className);
135 if ($parent !== \false) {
136 return new self(sprintf('Class "%s" sub class of "%s" is not a valid entity or mapped super class.', $className, $parent));
137 }
138 return new self(sprintf('Class "%s" is not a valid entity or mapped super class.', $className));
139 }
140 public static function propertyTypeIsRequired($className, $propertyName)
141 {
142 return new self(sprintf("The attribute 'type' is required for the column description of property %s::\$%s.", $className, $propertyName));
143 }
144 public static function duplicateFieldMapping($entity, $fieldName)
145 {
146 return new self(sprintf('Property "%s" in "%s" was already declared, but it must be declared only once', $fieldName, $entity));
147 }
148 public static function duplicateAssociationMapping($entity, $fieldName)
149 {
150 return new self(sprintf('Property "%s" in "%s" was already declared, but it must be declared only once', $fieldName, $entity));
151 }
152 public static function duplicateQueryMapping($entity, $queryName)
153 {
154 return new self(sprintf('Query named "%s" in "%s" was already declared, but it must be declared only once', $queryName, $entity));
155 }
156 public static function duplicateResultSetMapping($entity, $resultName)
157 {
158 return new self(sprintf('Result set mapping named "%s" in "%s" was already declared, but it must be declared only once', $resultName, $entity));
159 }
160 public static function singleIdNotAllowedOnCompositePrimaryKey($entity)
161 {
162 return new self('Single id is not allowed on composite primary key in entity ' . $entity);
163 }
164 public static function noIdDefined($entity)
165 {
166 return new self('No ID defined for entity ' . $entity);
167 }
168 public static function unsupportedOptimisticLockingType($entity, $fieldName, $unsupportedType)
169 {
170 return new self(sprintf('Locking type "%s" (specified in "%s", field "%s") is not supported by Doctrine.', $unsupportedType, $entity, $fieldName));
171 }
172 public static function fileMappingDriversRequireConfiguredDirectoryPath($path = null)
173 {
174 if (!empty($path)) {
175 $path = '[' . $path . ']';
176 }
177 return new self('File mapping drivers must have a valid directory path, ' . 'however the given path ' . $path . ' seems to be incorrect!');
178 }
179 public static function invalidClassInDiscriminatorMap($className, $owningClass)
180 {
181 return new self(sprintf("Entity class '%s' used in the discriminator map of class '%s' " . 'does not exist.', $className, $owningClass));
182 }
183 public static function duplicateDiscriminatorEntry($className, array $entries, array $map)
184 {
185 return new self('The entries ' . implode(', ', $entries) . " in discriminator map of class '" . $className . "' is duplicated. " . 'If the discriminator map is automatically generated you have to convert it to an explicit discriminator map now. ' . 'The entries of the current map are: @DiscriminatorMap({' . implode(', ', array_map(static function ($a, $b) {
186 return sprintf("'%s': '%s'", $a, $b);
187 }, array_keys($map), array_values($map))) . '})');
188 }
189 public static function missingDiscriminatorMap($className)
190 {
191 return new self(sprintf("Entity class '%s' is using inheritance but no discriminator map was defined.", $className));
192 }
193 public static function missingDiscriminatorColumn($className)
194 {
195 return new self(sprintf("Entity class '%s' is using inheritance but no discriminator column was defined.", $className));
196 }
197 public static function invalidDiscriminatorColumnType($className, $type)
198 {
199 return new self(sprintf("Discriminator column type on entity class '%s' is not allowed to be '%s'. 'string' or 'integer' type variables are suggested!", $className, $type));
200 }
201 public static function nameIsMandatoryForDiscriminatorColumns($className)
202 {
203 return new self(sprintf("Discriminator column name on entity class '%s' is not defined.", $className));
204 }
205 public static function cannotVersionIdField($className, $fieldName)
206 {
207 return new self(sprintf("Setting Id field '%s' as versionable in entity class '%s' is not supported.", $fieldName, $className));
208 }
209 public static function sqlConversionNotAllowedForIdentifiers($className, $fieldName, $type)
210 {
211 return new self(sprintf("It is not possible to set id field '%s' to type '%s' in entity class '%s'. The type '%s' requires conversion SQL which is not allowed for identifiers.", $fieldName, $type, $className, $type));
212 }
213 public static function duplicateColumnName($className, $columnName)
214 {
215 return new self("Duplicate definition of column '" . $columnName . "' on entity '" . $className . "' in a field or discriminator column mapping.");
216 }
217 public static function illegalToManyAssociationOnMappedSuperclass($className, $field)
218 {
219 return new self("It is illegal to put an inverse side one-to-many or many-to-many association on mapped superclass '" . $className . '#' . $field . "'.");
220 }
221 public static function cannotMapCompositePrimaryKeyEntitiesAsForeignId($className, $targetEntity, $targetField)
222 {
223 return new self("It is not possible to map entity '" . $className . "' with a composite primary key " . "as part of the primary key of another entity '" . $targetEntity . '#' . $targetField . "'.");
224 }
225 public static function noSingleAssociationJoinColumnFound($className, $field)
226 {
227 return new self(sprintf("'%s#%s' is not an association with a single join column.", $className, $field));
228 }
229 public static function noFieldNameFoundForColumn($className, $column)
230 {
231 return new self(sprintf("Cannot find a field on '%s' that is mapped to column '%s'. Either the " . 'field does not exist or an association exists but it has multiple join columns.', $className, $column));
232 }
233 public static function illegalOrphanRemovalOnIdentifierAssociation($className, $field)
234 {
235 return new self(sprintf("The orphan removal option is not allowed on an association that is part of the identifier in '%s#%s'.", $className, $field));
236 }
237 public static function illegalOrphanRemoval($className, $field)
238 {
239 return new self('Orphan removal is only allowed on one-to-one and one-to-many ' . 'associations, but ' . $className . '#' . $field . ' is not.');
240 }
241 public static function illegalInverseIdentifierAssociation($className, $field)
242 {
243 return new self(sprintf("An inverse association is not allowed to be identifier in '%s#%s'.", $className, $field));
244 }
245 public static function illegalToManyIdentifierAssociation($className, $field)
246 {
247 return new self(sprintf("Many-to-many or one-to-many associations are not allowed to be identifier in '%s#%s'.", $className, $field));
248 }
249 public static function noInheritanceOnMappedSuperClass($className)
250 {
251 return new self("It is not supported to define inheritance information on a mapped superclass '" . $className . "'.");
252 }
253 public static function mappedClassNotPartOfDiscriminatorMap($className, $rootClassName)
254 {
255 return new self("Entity '" . $className . "' has to be part of the discriminator map of '" . $rootClassName . "' " . "to be properly mapped in the inheritance hierarchy. Alternatively you can make '" . $className . "' an abstract class " . 'to avoid this exception from occurring.');
256 }
257 public static function lifecycleCallbackMethodNotFound($className, $methodName)
258 {
259 return new self("Entity '" . $className . "' has no method '" . $methodName . "' to be registered as lifecycle callback.");
260 }
261 public static function entityListenerClassNotFound($listenerName, $className)
262 {
263 return new self(sprintf('Entity Listener "%s" declared on "%s" not found.', $listenerName, $className));
264 }
265 public static function entityListenerMethodNotFound($listenerName, $methodName, $className)
266 {
267 return new self(sprintf('Entity Listener "%s" declared on "%s" has no method "%s".', $listenerName, $className, $methodName));
268 }
269 public static function duplicateEntityListener($listenerName, $methodName, $className)
270 {
271 return new self(sprintf('Entity Listener "%s#%s()" in "%s" was already declared, but it must be declared only once.', $listenerName, $methodName, $className));
272 }
273 public static function invalidFetchMode(string $className, string $fetchMode) : self
274 {
275 return new self("Entity '" . $className . "' has a mapping with invalid fetch mode '" . $fetchMode . "'");
276 }
277 public static function invalidGeneratedMode($generatedMode) : self
278 {
279 return new self("Invalid generated mode '" . $generatedMode . "'");
280 }
281 public static function compositeKeyAssignedIdGeneratorRequired($className)
282 {
283 return new self("Entity '" . $className . "' has a composite identifier but uses an ID generator other than manually assigning (Identity, Sequence). This is not supported.");
284 }
285 public static function invalidTargetEntityClass($targetEntity, $sourceEntity, $associationName)
286 {
287 return new self('The target-entity ' . $targetEntity . " cannot be found in '" . $sourceEntity . '#' . $associationName . "'.");
288 }
289 public static function invalidCascadeOption(array $cascades, $className, $propertyName)
290 {
291 $cascades = implode(', ', array_map(static function ($e) {
292 return "'" . $e . "'";
293 }, $cascades));
294 return new self(sprintf("You have specified invalid cascade options for %s::\$%s: %s; available options: 'remove', 'persist', 'refresh', 'merge', and 'detach'", $className, $propertyName, $cascades));
295 }
296 public static function missingSequenceName($className)
297 {
298 return new self(sprintf('Missing "sequenceName" attribute for sequence id generator definition on class "%s".', $className));
299 }
300 public static function infiniteEmbeddableNesting($className, $propertyName)
301 {
302 return new self(sprintf('Infinite nesting detected for embedded property %s::%s. ' . 'You cannot embed an embeddable from the same type inside an embeddable.', $className, $propertyName));
303 }
304 public static function illegalOverrideOfInheritedProperty($className, $propertyName)
305 {
306 return new self(sprintf('Overrides are only allowed for fields or associations declared in mapped superclasses or traits, which is not the case for %s::%s.', $className, $propertyName));
307 }
308 public static function invalidIndexConfiguration($className, $indexName)
309 {
310 return new self(sprintf('Index %s for entity %s should contain columns or fields values, but not both.', $indexName, $className));
311 }
312 public static function invalidUniqueConstraintConfiguration($className, $indexName)
313 {
314 return new self(sprintf('Unique constraint %s for entity %s should contain columns or fields values, but not both.', $indexName, $className));
315 }
316 public static function invalidOverrideType(string $expectdType, $givenValue) : self
317 {
318 return new self(sprintf('Expected %s, but %s was given.', $expectdType, get_debug_type($givenValue)));
319 }
320 public static function enumsRequirePhp81(string $className, string $fieldName) : self
321 {
322 return new self(sprintf('Enum types require PHP 8.1 in %s::$%s', $className, $fieldName));
323 }
324 public static function backedEnumTypeRequired(string $className, string $fieldName, string $enumType) : self
325 {
326 return new self(sprintf('Attempting to map a non-backed enum type %s in entity %s::$%s. Please use backed enums only', $enumType, $className, $fieldName));
327 }
328 public static function nonEnumTypeMapped(string $className, string $fieldName, string $enumType) : self
329 {
330 return new self(sprintf('Attempting to map non-enum type %s as enum in entity %s::$%s', $enumType, $className, $fieldName));
331 }
332 public static function invalidEnumValue(string $className, string $fieldName, string $value, string $enumType, ValueError $previous) : self
333 {
334 return new self(sprintf(<<<'EXCEPTION'
335 Context: Trying to hydrate enum property "%s::$%s"
336 Problem: Case "%s" is not listed in enum "%s"
337 Solution: Either add the case to the enum type or migrate the database column to use another case of the enum
338 EXCEPTION
339 , $className, $fieldName, $value, $enumType), 0, $previous);
340 }
341 public static function fromLibXmlErrors(array $errors) : self
342 {
343 $formatter = static function (LibXMLError $error) : string {
344 return sprintf('libxml error: %s in %s at line %d', $error->message, $error->file, $error->line);
345 };
346 return new self(implode(PHP_EOL, array_map($formatter, $errors)));
347 }
348 }
349