This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Nicolas Grekas a91019209e feature #36470 [DependencyInjection] Add a mechanism to deprecate public services to private (fancyweb)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[DependencyInjection] Add a mechanism to deprecate public services to private

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

This PR adds a mechanism to easily deprecate public services to private, ie a public service will be private in a next version.

It works with a tag and a compiler pass. The pass creates a deprecated public alias of the  public service.

It is ran "after removing" because we want to trigger only on direct accesses to the public service (`$container->get()`): if the public service was removed, we don't need to do anything because there is no impact.

~All references to the public service are kept because the deprecated public alias is created after `ResolveReferencesToAliasesPass` so only direct access actually uses the deprecated alias.~
All references to the public service are altered to a direct reference to the alias target service so that they don't trigger the alias deprecation.

Thanks to @nicolas-grekas for sharing some ideas and helping me !

Commits
-------

3e80e461a9 [DependencyInjection] Add a mechanism to deprecate public services to private
2020-05-04 15:42:21 +02:00
.github Add support of PHP8 static return type for withers 2020-04-30 22:10:08 +02:00
src/Symfony [DependencyInjection] Add a mechanism to deprecate public services to private 2020-05-04 15:38:14 +02:00
.appveyor.yml Merge branch '5.0' 2020-04-12 11:49:11 +02:00
.editorconfig Update .editorconfig 2018-09-06 16:22:56 +02:00
.gitignore Run the phpunit-bridge from a PR 2019-08-02 17:46:19 +02:00
.php_cs.dist Merge branch '4.4' 2019-11-05 18:15:52 +01:00
.travis.yml Improve SQS interoperability 2020-04-23 11:05:32 +02:00
CHANGELOG-4.0.md Merge branch '3.4' into 4.1 2018-08-01 18:22:14 +02:00
CHANGELOG-4.1.md updated CHANGELOG for 4.1.10 2019-01-06 17:16:07 +01:00
CHANGELOG-4.2.md updated CHANGELOG for 4.2.10 2019-06-26 16:19:37 +02:00
CHANGELOG-4.3.md updated CHANGELOG for 4.3.10 2020-01-21 14:13:32 +01:00
CHANGELOG-4.4.md updated CHANGELOG for 4.4.7 2020-03-30 16:59:08 +02:00
CHANGELOG-5.0.md Merge branch '5.0' 2020-04-01 08:33:39 +02:00
CODE_OF_CONDUCT.md Added the Code of Conduct file 2018-10-10 03:13:30 -07:00
CONTRIBUTING.md Mention the community review guide 2016-12-18 22:02:35 +01:00
CONTRIBUTORS.md update CONTRIBUTORS for 3.4.40 2020-04-28 19:41:24 +02:00
LICENSE Update year in license files 2020-01-01 12:03:25 +01:00
README.md Improve Symfony description 2019-11-24 19:17:45 +01:00
UPGRADE-5.0.md Remove UPGRADE files for 4.x 2020-04-12 15:08:12 +02:00
UPGRADE-5.1.md bug #36578 [Form] deprecate not using a rounding mode (xabbuh) 2020-05-03 16:35:45 +02:00
UPGRADE-6.0.md bug #36578 [Form] deprecate not using a rounding mode (xabbuh) 2020-05-03 16:35:45 +02:00
composer.json [AmazonSqsMessenger] Use AsyncAws to handle SQS communication 2020-05-03 18:22:01 +02:00
link Add new packages on the link script 2020-03-04 17:45:35 +01:00
phpunit Revert "[travis][appveyor] don't cache .phpunit" 2020-04-12 11:36:17 +02:00
phpunit.xml.dist [Uid] minor improvements 2020-03-20 20:42:05 +01:00

README.md

Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the popular PHP projects (including Drupal and Magento).

Installation

Documentation

Community

Contributing

Symfony is an Open Source, community-driven project with thousands of contributors. Join them contributing code or contributing documentation.

Security Issues

If you discover a security vulnerability within Symfony, please follow our disclosure procedure.

About Us

Symfony development is sponsored by SensioLabs, led by the Symfony Core Team and supported by Symfony contributors.