Skip to content

Conversation

@f3l1x
Copy link
Member

@f3l1x f3l1x commented Dec 15, 2025

Introduces a simple LinkGenerator class that generates URLs from endpoint definitions. Supports two lookup methods:

  • By controller class and method: Controller::method
  • By endpoint ID: endpoint.id

Path parameters are substituted from provided params array, remaining params are added as query string.

Introduces a simple LinkGenerator class that generates URLs from endpoint
definitions. Supports two lookup methods:
- By controller class and method: Controller::method
- By endpoint ID: endpoint.id

Path parameters are substituted from provided params array, remaining
params are added as query string.
- Register LinkGenerator as api.core.linkGenerator service
- Add DI integration tests with real endpoints
- Add UsersController fixture for testing path parameters
- Add link-generator.md documentation
- Update README.md with link to documentation
- Replace deprecated isSingle() with isSimple() in EntityAdapter
- Remove deprecated phpstan.neon checkGenericClassInNonGenericObjectType option
- Add proper type hints to fix ~40 PHPStan errors:
  - Helpers.php: Add is_array check for tag priority
  - ApiRequest.php: Add type assertions for getAttribute
  - ApiResponse.php: Add instanceof checks for getEntity/getEndpoint
  - ValidationException.php: Fix sprintf with mixed values
  - RequestParameterMapping.php: Add type assertion for requestParameters
  - DecoratedDispatcher.php: Use instanceof for endpoint check
  - Plugin.php: Add type assertion for config processing
  - DateTimeTypeMapper.php: Add is_string check for value
  - Regex.php: Add proper return type hints
  - Endpoint.php: Use is_string check for pattern attribute
  - ArrayHydrator.php: Add detailed phpstan-param shape
  - ArraySerializator.php: Add type assertion for mask
  - BasicEntity.php: Fix return types and add type assertions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants