mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 09:02:12 +00:00
Merge branch '1.10' into 1.11
* 1.10: [ADR] Declaring services as public in container Update Sylius supported versions
This commit is contained in:
commit
b285886cdd
2 changed files with 56 additions and 1 deletions
53
adr/2022_02_11_declaring_services_in_container.md
Normal file
53
adr/2022_02_11_declaring_services_in_container.md
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
# Declaring services in container
|
||||||
|
|
||||||
|
* Status: accepted
|
||||||
|
* Date: 2022-02-11
|
||||||
|
|
||||||
|
## Context and Problem Statement
|
||||||
|
|
||||||
|
Since Symfony 3.4, all Symfony services are declared private by default. And this is the recommended Symfony approach. On the
|
||||||
|
other hand, first stable Sylius release was published before that and therefore at the moment of publication of this recommendation
|
||||||
|
Sylius had hundreds public services. The question is how should we handle services declared after the 3.4 release.
|
||||||
|
|
||||||
|
## Decision Drivers
|
||||||
|
|
||||||
|
Declared services should be:
|
||||||
|
* easily usable in ResourceControllers (where we are allowing for fetching services directly from the container)
|
||||||
|
* easily usable as state machine callbacks, which are fetched directly for the container
|
||||||
|
* easily accessible in PHPUnit
|
||||||
|
* it would be better to have one, coherent rule for all services
|
||||||
|
|
||||||
|
## Considered Options
|
||||||
|
|
||||||
|
### Making all services public
|
||||||
|
|
||||||
|
* Good, because it is coherent with previous services
|
||||||
|
* Good, because it is easily usable with ResourceController, StateMachines and PHPUnit
|
||||||
|
* Good, because it maintains backward compatibility
|
||||||
|
* Bad, because it is against Symfony recommendation
|
||||||
|
|
||||||
|
### Making all service private
|
||||||
|
|
||||||
|
* Good, because it is coherent with previous services
|
||||||
|
* Good, because it follows Symfony recommendation
|
||||||
|
* Bad, because it breaks backward compatibility
|
||||||
|
* Bad, because it requires additional code to rework ResourceController and StateMachines service handling
|
||||||
|
* Bad, because it requires small refactor for PHPUnit handling
|
||||||
|
|
||||||
|
### Making only new services private
|
||||||
|
|
||||||
|
* Good, because it follows Symfony recommendation for new stuff
|
||||||
|
* Good, because it maintains backward compatibility
|
||||||
|
* Bad, because it requires additional code to rework ResourceController and StateMachines service handling
|
||||||
|
* Bad, because it requires small refactor for PHPUnit handling
|
||||||
|
|
||||||
|
## Decision Outcome
|
||||||
|
|
||||||
|
Chosen option: **"Making all services public"**
|
||||||
|
|
||||||
|
For now, it is the most straightforward solution, that does not cost us too much, does not put additional debt on us, and
|
||||||
|
it is the solution that we are doing since 3.4 (it was just implicit).
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
* [Announcement of private services](https://symfony.com/blog/new-in-symfony-3-4-services-are-private-by-default)
|
||||||
|
|
@ -67,6 +67,8 @@ Past Releases
|
||||||
+---------+--------------------+--------------------+--------------------+-----------------------+
|
+---------+--------------------+--------------------+--------------------+-----------------------+
|
||||||
| 1.10 | Jun 29, 2021 | May 14, 2022 | Jan 14, 2023 | Fully supported |
|
| 1.10 | Jun 29, 2021 | May 14, 2022 | Jan 14, 2023 | Fully supported |
|
||||||
+---------+--------------------+--------------------+--------------------+-----------------------+
|
+---------+--------------------+--------------------+--------------------+-----------------------+
|
||||||
|
| 1.11 | Feb 14, 2022 | Oct 13, 2022 | Jun 17, 2023 | Fully supported |
|
||||||
|
+---------+--------------------+--------------------+--------------------+-----------------------+
|
||||||
|
|
||||||
Future Releases
|
Future Releases
|
||||||
---------------
|
---------------
|
||||||
|
|
@ -74,7 +76,7 @@ Future Releases
|
||||||
+---------+----------------------+------------------------+--------------------+
|
+---------+----------------------+------------------------+--------------------+
|
||||||
| Version | Development starts | Stabilization starts | Release date |
|
| Version | Development starts | Stabilization starts | Release date |
|
||||||
+=========+======================+========================+====================+
|
+=========+======================+========================+====================+
|
||||||
| 1.11 | Jun 29, 2021 | Dec 13, 2021 | Feb 14, 2022 |
|
| 1.12 | Feb 14, 2021 | To-be confirmed | To-be confirmed |
|
||||||
+---------+----------------------+------------------------+--------------------+
|
+---------+----------------------+------------------------+--------------------+
|
||||||
|
|
||||||
Backward Compatibility
|
Backward Compatibility
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue