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.11 | Feb 14, 2022 | Oct 13, 2022 | Jun 17, 2023 | Fully supported |
|
||||
+---------+--------------------+--------------------+--------------------+-----------------------+
|
||||
|
||||
Future Releases
|
||||
---------------
|
||||
|
|
@ -74,7 +76,7 @@ Future Releases
|
|||
+---------+----------------------+------------------------+--------------------+
|
||||
| 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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue