Apiato and its other first-party packages follow Semantic Versioning. Major framework releases are released every year (~Q1), while minor and patch releases may be released as often as every week. Minor and patch releases should never contain breaking changes.
When referencing the Apiato framework or its components from your application or package,
you should always use a version constraint such as
since major releases of Apiato do include breaking changes.
However, we strive to always ensure you may update to a new major release in one day or less.
For all Apiato releases, bug fixes are provided for 18 months and security fixes are provided for 2 years.
|Version||PHP (*)||Release||Bug Fixes Until||Security Fixes Until|
|10||7.3 - 8.1||April 25th, 2021||October 25th, 2022||April 25th, 2023|
|11||8.0 - 8.2||April 27th, 2022||October 27th, 2023||April 27th, 2024|
|12||8.1 - 8.2||June 4th, 2023||December 4th, 2024||June 4th, 2025|
|13||8.2||Q1 2024||August 5th, 2025||February 3rd, 2026|
(*) Supported PHP versions
Full Changelog: https://github.com/apiato/apiato/compare/v11.3.2...v12.0.0
Apiato 12.x requires a minimum PHP version of 8.1.
- Upgraded to Laravel v10 (All Laravel files (e.g. configs, .env, etc...) are now synced with the latest Laravel changes)
- Updated Composer dependencies to their latest version
- Laravel Passport route registration & customization has changed. Passport routes are now reside in a dedicated route file (Instead of registering them in the provider).
$routeMiddlewarefield is renamed to
- Trimmed down the TestCase by removing some useless traits including:
encode()method return value has changed -> In case of unencodable value (e.g.
null), now returns
decode()method return value has changed -> In case of undecodable value (e.g.
null), now returns
- StateKeeperTrait is removed from
None Breaking Changes
- Everything is refactored to use
constructorinjection instead of directly using the Service Container like so
- Added more tests and refactored the rest
- Switched to
Route::get('profile', [GetAuthenticatedUserController::class, 'getAuthenticatedUser']);
- All rotues are moved into the private documentation. e.g.
- Added some getter methods to the Request including:
- Added a
TestAssertionHelperTraitto the TestCase which provides some usefull assertions