22
33namespace Drupal \next_jsonapi \Controller ;
44
5- use Drupal \Component \Datetime \TimeInterface ;
6- use Drupal \Core \Entity \EntityFieldManagerInterface ;
7- use Drupal \Core \Entity \EntityRepositoryInterface ;
8- use Drupal \Core \Entity \EntityTypeManagerInterface ;
9- use Drupal \Core \Render \RendererInterface ;
10- use Drupal \Core \Session \AccountInterface ;
11- use Drupal \jsonapi \Access \EntityAccessChecker ;
12- use Drupal \jsonapi \Context \FieldResolver ;
135use Drupal \jsonapi \Controller \EntityResource as JsonApiEntityResource ;
14- use Drupal \jsonapi \IncludeResolver ;
156use Drupal \jsonapi \Query \OffsetPage ;
167use Drupal \jsonapi \ResourceType \ResourceType ;
17- use Drupal \jsonapi \ResourceType \ResourceTypeRepositoryInterface ;
188use Symfony \Component \HttpFoundation \Request ;
19- use Symfony \Component \Serializer \SerializerInterface ;
209
2110/**
2211 * Process all entity requests.
@@ -28,39 +17,23 @@ class EntityResource extends JsonApiEntityResource {
2817 *
2918 * @var int
3019 */
31- protected $ maxSize ;
20+ protected int $ maxSize ;
3221
3322 /**
3423 * EntityResource constructor.
3524 *
36- * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
37- * The entity type manager.
38- * @param \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager
39- * The entity type field manager.
40- * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface $resource_type_repository
41- * The JSON:API resource type repository.
42- * @param \Drupal\Core\Render\RendererInterface $renderer
43- * The renderer.
44- * @param \Drupal\Core\Entity\EntityRepositoryInterface $entity_repository
45- * The entity repository.
46- * @param \Drupal\jsonapi\IncludeResolver $include_resolver
47- * The include resolver.
48- * @param \Drupal\jsonapi\Access\EntityAccessChecker $entity_access_checker
49- * The JSON:API entity access checker.
50- * @param \Drupal\jsonapi\Context\FieldResolver $field_resolver
51- * The JSON:API field resolver.
52- * @param \Symfony\Component\Serializer\SerializerInterface|\Symfony\Component\Serializer\Normalizer\DenormalizerInterface $serializer
53- * The JSON:API serializer.
54- * @param \Drupal\Component\Datetime\TimeInterface $time
55- * The time service.
56- * @param \Drupal\Core\Session\AccountInterface $user
57- * The current user account.
58- * @param int $max_size
59- * The offset max size.
25+ * @param mixed ...$args
26+ * All constructor arguments.
6027 */
61- public function __construct (EntityTypeManagerInterface $ entity_type_manager , EntityFieldManagerInterface $ field_manager , ResourceTypeRepositoryInterface $ resource_type_repository , RendererInterface $ renderer , EntityRepositoryInterface $ entity_repository , IncludeResolver $ include_resolver , EntityAccessChecker $ entity_access_checker , FieldResolver $ field_resolver , SerializerInterface $ serializer , TimeInterface $ time , AccountInterface $ user , int $ max_size ) {
62- parent ::__construct ($ entity_type_manager , $ field_manager , $ resource_type_repository , $ renderer , $ entity_repository , $ include_resolver , $ entity_access_checker , $ field_resolver , $ serializer , $ time , $ user );
63- $ this ->maxSize = $ max_size ;
28+ public function __construct (...$ args ) {
29+ // Pop the last argument as $maxSize.
30+ $ this ->maxSize = array_pop ($ args );
31+
32+ // Forward the remaining arguments to the parent constructor.
33+ // We handle it this way because the parent constructor arguments
34+ // differ between Drupal 10 and Drupal 11, so using ...$args
35+ // ensures compatibility across versions.
36+ parent ::__construct (...$ args );
6437 }
6538
6639 /**
0 commit comments