<table role="table">
<thead>
<tr>
<th>Q</th>
<th>A</th>
</tr>
</thead>
<tbody>
<tr>
<td>Bug report?</td>
<td>no</td>
</tr>
<tr>
<td>Feature request?</td>
<td>yes</td>
</tr>
<tr>
<td>BC Break report?</td>
<td>no</td>
</tr>
<tr>
<td>RFC?</td>
<td>no</td>
</tr>
<tr>
<td>Symfony version</td>
<td>4.x</td>
</tr>
</tbody>
</table>
<h3 dir="auto">Introduction</h3>
<p dir="auto">Symfony 3.3 introduced a convention of naming services with their FQCN. The update pathway for legacy applications is simple: just start using new naming convention and slowly all services will get new names.</p>
<h3 dir="auto">The problem</h3>
<p dir="auto">While refactoring parts of the application it's worth to clean up a little bit. One of the steps which I perform is ensuring services are names by their FQCNs (which simplifies the configuration due to autoregistration). However, especially for public services, I cannot ensure old names aren't used somewhere.</p>
<h3 dir="auto">Solution</h3>
<p dir="auto">Long time ago I assumed <code class="notranslate">deprecated</code> tag can be used on aliases - 4 proved me wrong nicely throwing <code class="notranslate"> The configuration key "deprecated" is unsupported</code>.<br>
What if we actually introduced <code class="notranslate">deprecated</code> key on aliases to mark them as deprecated while the service itself stays non-deprecated?</p>
<p dir="auto">Would love to hear your feedback. Thanks!</p>