All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for Symfony 5 #83
- Support for PHP 8.0 #83
- Add support for any version of Symfony 7 #79
- Make the Melodiia data mapper a service so it's overridable more easily globally #78
- Support for Symfony 7
- Support for PHP 8.3
- Support for PHP 7.4
- Symfony 6.x compatibility - #66
- Improved Symfony 6.3 compatibility and prepare Symfony 7 - #70
- Test suite now runs on PHP 8.2
- Fix a bug in dependency requirement detection
- Symfony 6 support
- Compatibility with PHP 8.1
- Fix #54 to be able to build a melodiia application on any PAAS service
- The error listener is now working properly!
- Compatibility with Sf 4.x
- Add json-api header in responses
- Removed hard dependency to the form component (it is still required for many features)
- Automatic extension of the Symfony DateTimeType. There's a good DateTimeType available, we do not need more.
- Compatibility to PHP 8
- Ability to stop a deletion from events
- Test suite for PHP 7.3/Symfony 4.4
- Twig and Doctrine are now soft deps
- Docs
- Symfony Recipe
- Filters (the feature were not working anymore)
- Support of more kind of FormError
- Removed the requirement to have CSRF protection enabled #25
- Behat test suite. Melodiia is officially battle tested! You can also use this as example!
- Add Collection model to render easily standard output with collections #12
- Add
ContextBuilderChain
class, you can now add many ContextBuilder to your code base. #32 Be careful as it MAY break the BC of your application if you redefined theSerializeOnKernelView
class - New Documentation controller, learn more in documentation or see the example in the test application
- New PHP minimum requirement is PHP 7.3
- Huge BC Break on namespaces. You need to rename all classes used to SwagIndustries instead of Biig
- BC Break: the form option
customDataMapper
is nowmelodiiaDataMapper
- BC Break: on CRUD classes. It's big changes time. So we made the security optional for crud controllers, this has a consequence on their constructor
- BC Break:
CrudableModelInterface
is nowMelodiiaModel
- The ApiType now uses a custom request handler. It makes handling api request easier and removes some code
in controllers. You should now use
handleRequest($request)
on your form. Here is a list of other changes:- An api form cannot be "not submitted" anymore after a call to
handleRequest
- In case the input data is invalid, a form error is add to the form
- There is a new optional option on the ApiType:
clear_missing
but its value is automatically guessed by default to follow HTTP verbs.
- An api form cannot be "not submitted" anymore after a call to
- Removal of the dependency to zend json (thanks to php 7.3 upgrade)
- BC Break: the ApiResponse now contains also headers. If you do not extends another response you will need to add the missing method
- BC Break: many many many changes of namespaces because the Bridge do not exists anymore.
- BC break: the documentation is no more automatically generated. This removes a lot of configuration for Melodiia.
- CRUD controllers now use an id resolver (feel free to redefine it)
- Melodiia now provides a convenient way to manage API collections with forms
- Complete support of Sf 5.0
- DataStore now uses a standard flush
- Support for Sf 4.2
- Update CRUD Controller was not working as expected anymore, this has been fixed, update asap
- Full compatibility to Symfony 5.x
- the crud controllers now allow partial data on patch by default
- Fix issue with subresources persistence
- FormError are more consistent
- CRUD controllers now output 400 error on malformed json instead or 500 error
- Add possibility for Create/Update controller to configure the
clearMissing
parameter of SymfonyForm->submit()
method.
- Add new
ErrorResponse
class which allow serializing custom errors
- #33 add delete controller for CRUD
- Add new
remove
method to DoctrineDataStore - Refacto check model class inside crud controllers
- #29 Add new configuration for pagination. (dynamic max per page) Notice: this is a minor BC break but it should be smooth upgrade for everyone ATM.
- #25 Improve compatibility of CRUD stuff, but breaks the compatibility
- #22 Add possibility to define a custom data normalizer for ApiType
- #19 Documentation is now using scheme of the application
- #17 fixes issue with GetAll controller with no filters
- #16 adds a BC layer for Sf < 4.1 and removes deprecation usage triggers for new versions
- Some tooling about filters that are now a nice thing to use
- Some documentation about crud and filters
- BC break on FilterInterface
- BC break on DataStore interface
- Api errors, now returns json
- New dependency to pager fanta (experimental, could be removed)
- BC break on CRUD data provider (it now support complete CRUD)
- Add new CRUD controllers
- Add new responses and pagination management