44
55use Doctrine \ORM \EntityManagerInterface ;
66use Doctrine \ORM \Mapping \ClassMetadata ;
7- use Doctrine \ORM \Mapping \ClassMetadataInfo ;
87use Intaro \CustomIndexBundle \DTO \CustomIndex ;
98
109/**
@@ -85,7 +84,7 @@ private function collect(
8584 */
8685 private function getTableNameFromMetadata (ClassMetadata $ metadata , ClassMetadata $ parentMetadata ): string
8786 {
88- if (ClassMetadataInfo ::INHERITANCE_TYPE_JOINED === $ metadata ->inheritanceType ) {
87+ if (ClassMetadata ::INHERITANCE_TYPE_JOINED === $ metadata ->inheritanceType ) {
8988 return $ parentMetadata ->getTableName ();
9089 }
9190
@@ -99,15 +98,15 @@ private function getTableNameFromMetadata(ClassMetadata $metadata, ClassMetadata
9998 */
10099 private function getCustomIndexesAttributes (ClassMetadata $ meta ): array
101100 {
102- return $ meta -> getReflectionClass ( )->getAttributes (Attribute \CustomIndex::class);
101+ return $ this -> getMetaReflectionClass ( $ meta )->getAttributes (Attribute \CustomIndex::class);
103102 }
104103
105104 /**
106105 * @param ClassMetadata<T> $meta
107106 */
108107 private function isAbstract (ClassMetadata $ meta ): bool
109108 {
110- return $ meta -> getReflectionClass ( )->isAbstract ();
109+ return $ this -> getMetaReflectionClass ( $ meta )->isAbstract ();
111110 }
112111
113112 /**
@@ -135,7 +134,7 @@ private function getAbstractClassesInfo(array $metadata): array
135134 */
136135 private function searchParentsWithIndex (ClassMetadata $ meta , array $ abstractClasses ): array
137136 {
138- $ reflectionClass = $ meta -> getReflectionClass ( );
137+ $ reflectionClass = $ this -> getMetaReflectionClass ( $ meta );
139138 $ parentMeta = [];
140139 foreach ($ abstractClasses as $ entityName => $ entityMeta ) {
141140 if ($ reflectionClass ->isSubclassOf ($ entityName )) {
@@ -145,4 +144,19 @@ private function searchParentsWithIndex(ClassMetadata $meta, array $abstractClas
145144
146145 return $ parentMeta ;
147146 }
147+
148+ /**
149+ * @param ClassMetadata<T> $meta
150+ *
151+ * @return \ReflectionClass<T>
152+ */
153+ private function getMetaReflectionClass (ClassMetadata $ meta ): \ReflectionClass
154+ {
155+ $ reflectionClass = $ meta ->getReflectionClass ();
156+ if (null === $ reflectionClass ) {
157+ throw new \RuntimeException ('Reflection class is not found for ' . $ meta ->getName ());
158+ }
159+
160+ return $ reflectionClass ;
161+ }
148162}
0 commit comments