@@ -144,10 +144,13 @@ public function generate(array $graphs, array $config): array
144144 // Second pass
145145 foreach ($ classes as $ class ) {
146146 if ($ class ->hasParent () && !$ class ->isParentEnum ()) {
147- $ parentClass = $ classes [$ class ->parent ()] ?? null ;
148- if ($ parentClass ) {
149- $ parentClass ->hasChild = true ;
150- $ class ->parentHasConstructor = $ parentClass ->hasConstructor ;
147+ $ parentName = $ class ->parent ();
148+ if (null !== $ parentName ) {
149+ $ parentClass = $ classes [$ parentName ] ?? null ;
150+ if ($ parentClass ) {
151+ $ parentClass ->hasChild = true ;
152+ $ class ->parentHasConstructor = $ parentClass ->hasConstructor ;
153+ }
151154 }
152155 }
153156
@@ -156,7 +159,7 @@ public function generate(array $graphs, array $config): array
156159 throw new \LogicException (\sprintf ('Property "%s" has to be an instance of "%s". ' , $ property ->name (), SchemaProperty::class));
157160 }
158161 $ typeName = $ property ->rangeName ;
159- if (isset ($ classes [$ typeName ])) {
162+ if (null !== $ typeName && isset ($ classes [$ typeName ])) {
160163 $ property ->reference = $ classes [$ typeName ];
161164 $ referencedByClasses [$ typeName ][$ class ->name ()] = $ class ;
162165 }
@@ -174,7 +177,8 @@ public function generate(array $graphs, array $config): array
174177 ?? ($ class ->hasChild && !$ class ->isReferencedBy );
175178
176179 // When including all properties, ignore properties already set on parent
177- if (($ config ['types ' ][$ class ->name ()]['allProperties ' ] ?? true ) && isset ($ classes [$ class ->parent ()])) {
180+ $ currentClassParent = $ class ->parent ();
181+ if ($ config ['types ' ][$ class ->name ()]['allProperties ' ] && null !== $ currentClassParent && isset ($ classes [$ currentClassParent ])) {
178182 $ type = $ class ->resource ();
179183 foreach ($ propertiesMap [$ type ->getUri ()] as $ property ) {
180184 if (!\is_string ($ propertyName = $ property ->localName ())) {
@@ -184,17 +188,18 @@ public function generate(array $graphs, array $config): array
184188 continue ;
185189 }
186190
187- $ parentConfig = $ config ['types ' ][$ class -> parent () ] ?? null ;
188- $ parentClass = $ classes [$ class -> parent () ];
191+ $ parentConfig = $ config ['types ' ][$ currentClassParent ] ?? null ;
192+ $ parentClass = $ classes [$ currentClassParent ];
189193
190194 while ($ parentClass ) {
191195 if (\array_key_exists ($ propertyName , $ parentConfig ['properties ' ] ?? []) || \in_array ($ property , $ propertiesMap [$ parentClass ->rdfType ()], true )) {
192196 $ class ->removePropertyByName ($ propertyName );
193197 continue 2 ;
194198 }
195199
196- $ parentConfig = $ parentClass ->parent () ? ($ config ['types ' ][$ parentClass ->parent ()] ?? null ) : null ;
197- $ parentClass = $ parentClass ->parent () && isset ($ classes [$ parentClass ->parent ()]) ? $ classes [$ parentClass ->parent ()] : null ;
200+ $ parentClassParent = $ parentClass ->parent ();
201+ $ parentConfig = $ parentClassParent ? ($ config ['types ' ][$ parentClassParent ] ?? null ) : null ;
202+ $ parentClass = ($ parentClassParent && isset ($ classes [$ parentClassParent ])) ? $ classes [$ parentClassParent ] : null ;
198203 }
199204 }
200205 }
@@ -414,7 +419,8 @@ private function addPropertyToMap(RdfResource $property, RdfResource $domain, ar
414419 continue ;
415420 }
416421
417- $ propertyConfig = $ config ['types ' ][$ typesResourceHierarchy ['names ' ][$ k ]]['properties ' ][$ propertyName ] ?? null ;
422+ $ currentTypeName = $ typesResourceHierarchy ['names ' ][$ k ];
423+ $ propertyConfig = $ config ['types ' ][$ currentTypeName ]['properties ' ][$ propertyName ] ?? null ;
418424
419425 if ($ propertyConfig ['exclude ' ] ?? false ) {
420426 continue ;
@@ -452,13 +458,19 @@ private function defineTypesToGenerate(array $graphs, array $config): array
452458 continue ;
453459 }
454460
455- $ typeName = $ this ->phpTypeConverter ->escapeIdentifier ($ type ->localName ());
456- if (!($ config ['types ' ][$ typeName ]['exclude ' ] ?? false )) {
461+ $ localName = $ type ->localName ();
462+ if (null === $ localName ) {
463+ continue ;
464+ }
465+ /** @var string $typeNameFinal */
466+ $ typeNameFinal = $ this ->phpTypeConverter ->escapeIdentifier ($ localName );
467+
468+ if (!($ config ['types ' ][$ typeNameFinal ]['exclude ' ] ?? false )) {
457469 if ($ config ['resolveTypes ' ] || $ vocabAllTypes ) {
458- $ allTypes [$ typeName ] = $ type ;
470+ $ allTypes [$ typeNameFinal ] = $ type ;
459471 }
460472 if ($ vocabAllTypes ) {
461- $ typeNamesToGenerate [] = $ typeName ;
473+ $ typeNamesToGenerate [] = $ typeNameFinal ;
462474 }
463475 }
464476 }
0 commit comments