Skip to content

Commit 249a222

Browse files
committed
Merge branch '2.5'
2 parents d83d502 + d84282f commit 249a222

File tree

49 files changed

+985
-289
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+985
-289
lines changed

CHANGELOG.md

Lines changed: 58 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,38 @@
1313
* OpenAPI: Add PHP default values to the documentation (#2386)
1414
* Deprecate using a validation groups generator service not implementing `ApiPlatform\Core\Bridge\Symfony\Validator\ValidationGroupsGeneratorInterface` (#3346)
1515

16+
## 2.5.6
17+
18+
* Add support for Mercure 0.10 (#3584)
19+
* Allow objects without properties (#3544)
20+
* Fix Ramsey uuid denormalization (#3473)
21+
* Revert #3331 as it breaks backwards compatibility
22+
* Handle deprecations from Doctrine Inflector (#3564)
23+
* JSON Schema: Missing JSON-LD context from Data Transformers (#3479)
24+
* GraphQL: Resource with no operations should be available through relations (#3532)
25+
1626
## 2.5.5
1727

18-
* Filter: Improve the RangeFilter query in case the values are equals using the between operator #3488
19-
* Pagination: Fix bug with large values #3451
20-
* Doctrine: use the correct type within `setParameter` of the SearchFilter #3331
21-
* Allow `\Traversable` resources #3463
22-
* Hydra: `hydra:writable` => `hydra:writeable` #3481
23-
* Hydra: Show `hydra:next` only when it's available #3457
24-
* Swagger UI: Missing default context argument #3443
25-
* Swagger UI: Fix API docs path in swagger ui #3475
26-
* OpenAPI: Export with unescaped slashes #3368
27-
* OpenAPI: OAuth flows fix #3333
28-
* JSON Schema: Fix metadata options #3425
29-
* JSON Schema: Allow decoration #3417
30-
* JSON Schema: Add DateInterval type #3351
31-
* JSON Schema: Correct schema generation for many types #3402
32-
* Validation: Use API Platform's `ValidationException` instead of Symfony's #3414
33-
* Validation: Fix a bug preventing to serialize validator's payload #3375
34-
* Subresources: Improve queries when there's only one level #3396
35-
* HTTP: Location header is only set on POST with a 201 or between 300 and 400 #3497
36-
* GraphQL: Do not allow empty cursor values on `before` or `after` #3360
37-
* Bump versions of Swagger UI, GraphiQL and GraphQL Playground #3510
28+
* Filter: Improve the RangeFilter query in case the values are equals using the between operator (#3488)
29+
* Pagination: Fix bug with large values (#3451)
30+
* Doctrine: use the correct type within `setParameter` of the SearchFilter (#3331)
31+
* Allow `\Traversable` resources (#3463)
32+
* Hydra: `hydra:writable` => `hydra:writeable` (#3481)
33+
* Hydra: Show `hydra:next` only when it's available (#3457)
34+
* Swagger UI: Missing default context argument (#3443)
35+
* Swagger UI: Fix API docs path in swagger ui (#3475)
36+
* OpenAPI: Export with unescaped slashes (#3368)
37+
* OpenAPI: OAuth flows fix (#3333)
38+
* JSON Schema: Fix metadata options (#3425)
39+
* JSON Schema: Allow decoration (#3417)
40+
* JSON Schema: Add DateInterval type (#3351)
41+
* JSON Schema: Correct schema generation for many types (#3402)
42+
* Validation: Use API Platform's `ValidationException` instead of Symfony's (#3414)
43+
* Validation: Fix a bug preventing to serialize validator's payload (#3375)
44+
* Subresources: Improve queries when there's only one level (#3396)
45+
* HTTP: Location header is only set on POST with a 201 or between 300 and 400 (#3497)
46+
* GraphQL: Do not allow empty cursor values on `before` or `after` (#3360)
47+
* Bump versions of Swagger UI, GraphiQL and GraphQL Playground (#3510)
3848

3949
## 2.5.4
4050

@@ -60,7 +70,7 @@
6070
* Compatibility with Symfony 5 beta
6171
* Fix a notice in `SerializerContextBuilder`
6272
* Fix dashed path segment generation
63-
* Fix support for custom filters without constructor in the `@ApiFilter` annotation
73+
* Fix support for custom filters without constructors in the `@ApiFilter` annotation
6474
* Fix a bug that was preventing to disable Swagger/OpenAPI
6575
* Return a `404` HTTP status code instead of `500` whe the identifier is invalid (e.g.: invalid UUID)
6676
* Add links to the documentation in `@ApiResource` annotation's attributes to improve DX
@@ -88,9 +98,9 @@
8898

8999
* Allow to not declare GET item operation
90100
* Add support for the Accept-Patch header
91-
* Make the the `maximum_items_per_page` attribute consistent with other attributes controlling pagination
101+
* Make the `maximum_items_per_page` attribute consistent with other attributes controlling pagination
92102
* Allow to use a string instead of an array for serializer groups
93-
* Test: Add an helper method to find the IRI of a resource
103+
* Test: Add a helper method to find the IRI of a resource
94104
* Test: Add assertions for testing response against JSON Schema from API resource
95105
* GraphQL: Add support for multipart request so user can create custom file upload mutations (#3041)
96106
* GraphQL: Add support for name converter (#2765)
@@ -103,7 +113,7 @@
103113
* Add infrastructure to generate a JSON Schema from a Resource `ApiPlatform\Core\JsonSchema\SchemaFactoryInterface` (#2983)
104114
* Replaces `access_control` by `security` and adds a `security_post_denormalize` attribute (#2992)
105115
* Add basic infrastructure for cursor-based pagination (#2532)
106-
* Change ExistsFilter syntax to `exists[property]`, old syntax still supported see #2243, fixes it's behavior on GraphQL (also related #2640).
116+
* Change ExistsFilter syntax to `exists[property]`, old syntax still supported see #2243, fixes its behavior on GraphQL (also related #2640).
107117
* Pagination with subresources (#2698)
108118
* Improve search filter id's management (#1844)
109119
* Add support of name converter in filters (#2751, #2897), filter signature in abstract methods has changed see b42dfd198b1644904fd6a684ab2cedaf530254e3
@@ -147,10 +157,10 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
147157
* Varnish: Prevent cache miss by generating IRI for child related resources
148158
* Messenger: Unwrap exception thrown in handler for Symfony Messenger 4.3
149159
* Fix remaining Symfony 4.3 deprecation notices
150-
* Prevent cloning non clonable objects in `previous_data`
160+
* Prevent cloning non cloneable objects in `previous_data`
151161
* Return a 415 HTTP status code instead of a 406 one when a faulty `Content-Type` is sent
152162
* Fix `WriteListener` trying to generate IRI for non-resources
153-
* Allow to extract blank values from composite identifier
163+
* Allow extracting blank values from composite identifier
154164

155165
## 2.4.5
156166

@@ -318,18 +328,18 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
318328
* OpenAPI: support generating documentation using [ReDoc](https://github.com/Rebilly/ReDoc)
319329
* OpenAPI: basic hypermedia hints using OpenAPI v3 links
320330
* OpenAPI: expose the pagination controls
321-
* Allow to use custom classes for input and output (DTO) with the `input_class` and `output_class` attributes
322-
* Allow to disable the input or the output by setting `input_class` and `output_class` to false
331+
* Allow using custom classes for input and output (DTO) with the `input_class` and `output_class` attributes
332+
* Allow disabling the input or the output by setting `input_class` and `output_class` to false
323333
* Guess and automatically set the appropriate Schema.org IRIs for common validation constraints
324-
* Allow to set custom cache HTTP headers using the `cache_headers` attribute
325-
* Allow to set the HTTP status code to send to the client through the `status` attribute
334+
* Allow setting custom cache HTTP headers using the `cache_headers` attribute
335+
* Allow setting the HTTP status code to send to the client through the `status` attribute
326336
* Add support for the `Sunset` HTTP header using the `sunset` attribute
327337
* Set the `Content-Location` and `Location` headers when appropriate for better RFC7231 conformance
328338
* Display the matching data provider and data persister in the debug panel
329339
* GraphQL: improve performance by lazy loading types
330340
* Add the `api_persist` request attribute to enable or disable the `WriteListener`
331-
* Allow to set a default context in all normalizers
332-
* Permit to use a string instead of an array when there is only one serialization group
341+
* Allow setting a default context in all normalizers
342+
* Permit using a string instead of an array when there is only one serialization group
333343
* Add support for setting relations using the constructor of the resource classes
334344
* Automatically set a [409 Conflict](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409) HTTP status code when an `OptimisticLockException` is thrown
335345
* Resolve Dependency Injection Container parameters in the XML and YAML files for the resource class configuration
@@ -354,7 +364,7 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
354364
* OpenAPI/Swagger: add a description for the `properties[]` filter
355365
* OpenAPI/Swagger: Leverage advanced name converters
356366
* JSON-LD: Prevent an error in `ItemNormalizer` when `$context['resource_class']` is not defined
357-
* Allow to pass a the serialization group to use a string instead of as an array of one element
367+
* Allow to pass the serialization group to use a string instead of as an array of one element
358368
* Modernize the code base to use PHP 7.1 features when possible
359369
* Bump minimal dependencies of the used Symfony components
360370
* Improve the Packagist description
@@ -373,7 +383,7 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
373383
* Throw an `InvalidArgumentException` when trying to get an item from a collection route
374384
* Improve the debug bar panel visibility
375385
* Take into account the `route_prefix` attribute in subresources
376-
* Allow to use multiple values with `NumericFilter`
386+
* Allow using multiple values with `NumericFilter`
377387
* Improve exception handling in `ReadListener` by adding the previous exception
378388
379389
## 2.3.3
@@ -412,7 +422,7 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
412422
* Add support for deprecating resources, operations and fields in GraphQL, Hydra and Swagger
413423
* Add API Platform panels in the Symfony profiler and in the web debug toolbar
414424
* Make resource class's constructor parameters writable
415-
* Add support for interface as a resource
425+
* Add support for interfaces as resources
416426
* Add a shortcut syntax to define attributes at the root of `@ApiResource` and `@ApiProperty` annotations
417427
* Throw an exception if a required filter isn't set
418428
* Allow to specify the message when access is denied using the `access_control_message` attribute
@@ -487,7 +497,7 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
487497

488498
## 2.2.5
489499

490-
* Fix a various issues preventing the metadata cache to work properly (performance fix)
500+
* Fix various issues preventing the metadata cache to work properly (performance fix)
491501
* Fix a cache corruption issue when using subresources
492502
* Fix non-standard outputs when using the HAL format
493503
* Persist data in Doctrine DataPersister only if needed
@@ -505,7 +515,7 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
505515
## 2.2.3
506516
507517
* Fix object state inconsistency after persistence
508-
* Allow to use multiple `@ApiFilter` annotations on the same class
518+
* Allow using multiple `@ApiFilter` annotations on the same class
509519
* Fix a BC break when the serialization context builder depends of the retrieved data
510520
* Fix a bug regarding collections handling in the GraphQL endpoint
511521
@@ -540,8 +550,8 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
540550
* Deprecate the `ApiPlatform\Core\Bridge\Doctrine\EventListener\WriteListener` class in favor of the new `ApiPlatform\Core\EventListener\WriteListener` class.
541551
* Remove the `api_platform.doctrine.listener.view.write` event listener service.
542552
* Add a data persistence layer with a new `ApiPlatform\Core\DataPersister\DataPersisterInterface` interface.
543-
* Add the a new configuration to disable the API entrypoint and the documentation
544-
* Allow to set maximum items per page at operation/resource level
553+
* Add a new configuration to disable the API entrypoint and the documentation
554+
* Allow setting maximum items per page at operation/resource level
545555
* Add the ability to customize the message when configuring an access control rule trough the `access_control_message` attribute
546556
* Allow empty operations in XML configs
547557
@@ -560,9 +570,9 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
560570
* Add support for the immutable date and time types introduced in Doctrine
561571
* Fix the Doctrine query generated to retrieve nested subresources
562572
* Fix several bugs in the automatic eager loading support
563-
* Fix a bug occurring when passing neither an IRI nor an array in an embedded relation
564-
* Allow to request `0` items per page in collections
565-
* Also copy the `Host` from the Symfony Router
573+
* Fix a bug occurring when passing neither an IRI, nor an array in an embedded relation
574+
* Allow requesting `0` items per page in collections
575+
* Copy the `Host` from the Symfony Router
566576
* `Paginator::getLastPage()` now always returns a `float`
567577
* Minor performance improvements
568578
* Minor quality fixes
@@ -572,7 +582,7 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
572582
* Symfony 3.4 and 4.0 compatibility
573583
* Autowiring strict mode compatibility
574584
* Fix a bug preventing to create resource classes in the global namespace
575-
* Fix Doctrine type conversion in filter's WHERE clauses
585+
* Fix Doctrine type conversion in filters WHERE clauses
576586
* Fix filters when using eager loading and non-association composite identifier
577587
* Fix Doctrine type resolution for identifiers (for custom DBALType)
578588
* Add missing Symfony Routing options to operations configuration
@@ -627,9 +637,9 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
627637
* Add a flag to disable all request listeners
628638
* Add a default order option in the configuration
629639
* Allow to disable all operations using the XML configuration format and deprecate the previous format
630-
* Allow upper cased property names
640+
* Allow upper-cased property names
631641
* Improve the overall performance by optimizing `RequestAttributesExtractor`
632-
* Improve the performance of the filters subsystem by using a PSR-11 service locator and deprecate the `FilterCollection` class
642+
* Improve the performance of the filter subsystem by using a PSR-11 service locator and deprecate the `FilterCollection` class
633643
* Add compatibility with Symfony Flex and Symfony 4
634644
* Allow the Symfony Dependency Injection component to autoconfigure data providers and query extensions
635645
* Allow to use service for dynamic validation groups
@@ -727,7 +737,7 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
727737
* Fix the support of the Symfony's serializer @MaxDepth annotation
728738
* Fix property range of relations in the Hydra doc when an IRI is used
729739
* Fix an error "api:swagger:export" command when decorating the Swagger normalizer
730-
* Fix an an error in the Swagger documentation generator when a property has several serialization groups
740+
* Fix an error in the Swagger documentation generator when a property has several serialization groups
731741

732742
## 2.0.1
733743

@@ -765,7 +775,7 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
765775
* Add a range filter
766776
* Search filter: add a case sensitivity setting
767777
* Search filter: fix the behavior of the search filter when 0 is provided as value
768-
* Search filter: allow to use identifiers different than id
778+
* Search filter: allow using identifiers different from id
769779
* Exclude tests from classmap
770780
* Fix some deprecations and tests
771781

@@ -811,4 +821,4 @@ Please read #2825 if you have issues with the behavior of Readable/Writable Link
811821
## 1.0.0 beta 2
812822

813823
* Preserve indexes when normalizing and denormalizing associative arrays
814-
* Allow to set default order for property when registering a `Doctrine\Orm\Filter\OrderFilter` instance
824+
* Allow setting default order for property when registering a `Doctrine\Orm\Filter\OrderFilter` instance

CONTRIBUTING.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,13 @@ Coverage will be available in `coverage/index.html`.
9090

9191
The command to launch Behat tests is:
9292

93-
./vendor/bin/behat --suite=default --stop-on-failure -vvv
93+
php -d memory_limit=-1 ./vendor/bin/behat --suite=default --stop-on-failure --format=progress
9494

9595
If you want to launch Behat tests for MongoDB, the command is:
9696

97-
APP_ENV=mongodb ./vendor/bin/behat --suite=mongodb --stop-on-failure -vvv
97+
APP_ENV=mongodb php -d memory_limit=-1 ./vendor/bin/behat --suite=mongodb --stop-on-failure --format=progress
98+
99+
To get more details about an error, replace `--format=progress` by `-vvv`.
98100

99101
## Squash your Commits
100102

0 commit comments

Comments
 (0)