1010
1111use Ibexa \AdminUi \Util \ContentTypeFieldsExtractorInterface ;
1212use Ibexa \Contracts \AdminUi \ContentType \ContentTypeFieldsByExpressionServiceInterface ;
13+ use Ibexa \Contracts \Core \Persistence \Content \Language \Handler as ContentLanguageHandler ;
1314use Ibexa \Contracts \Core \Persistence \Content \Type \Handler as ContentTypeHandler ;
1415use Ibexa \Contracts \Core \Repository \Values \ContentType \ContentType ;
1516use Ibexa \Contracts \Core \Repository \Values \ContentType \FieldDefinition ;
17+ use Ibexa \Core \FieldType \FieldTypeRegistry ;
1618use Ibexa \Core \Repository \Mapper \ContentTypeDomainMapper ;
1719
1820final class ContentTypeFieldsByExpressionService implements ContentTypeFieldsByExpressionServiceInterface
@@ -26,11 +28,17 @@ final class ContentTypeFieldsByExpressionService implements ContentTypeFieldsByE
2628 public function __construct (
2729 ContentTypeFieldsExtractorInterface $ fieldsExtractor ,
2830 ContentTypeHandler $ contentTypeHandler ,
29- ContentTypeDomainMapper $ contentTypeDomainMapper
31+ ContentLanguageHandler $ contentLanguageHandler ,
32+ FieldTypeRegistry $ fieldTypeRegistry
3033 ) {
3134 $ this ->fieldsExtractor = $ fieldsExtractor ;
3235 $ this ->contentTypeHandler = $ contentTypeHandler ;
33- $ this ->contentTypeDomainMapper = $ contentTypeDomainMapper ;
36+ // Building ContentTypeDomainMapper manually to avoid circular dependency.
37+ $ this ->contentTypeDomainMapper = new ContentTypeDomainMapper (
38+ $ contentTypeHandler ,
39+ $ contentLanguageHandler ,
40+ $ fieldTypeRegistry ,
41+ );
3442 }
3543
3644 public function getFieldsFromExpression (string $ expression ): array
0 commit comments