minor #12579 [Translation] [2.6] Upgrade information for LoggingTranslator (derrabus)

This PR was merged into the 2.6 branch.

Discussion
----------

[Translation] [2.6] Upgrade information for LoggingTranslator

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none
| License       | MIT
| Doc PR        | none

When upgrading a Symfony 2.5 project to the 2.6 branch, I noticed that the `@translator` service was changed. In the affected project, we've had a service that depends on the `@translator` service and uses a type hint to ensure that a `Translator` instance is passed to the constructor. With the introduction of the `LoggingTranslator` class (PR #10887), this type hint now fails.

I have added a small note to ` UPGRADE-2.6.md` in case more people stumble across this changed behavior.

Commits
-------

cd55a81 Upgrade information for the Translation component regarding the new LoggingTranslator class.
This commit is contained in:
Fabien Potencier 2014-11-28 10:16:35 +01:00
commit c4902d8342

View File

@ -364,3 +364,43 @@ $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
Then enjoy dumping variables by calling `dump($var)` anywhere in your PHP
and `{% dump var %}` or `{{ dump(var) }}` in Twig. Dumps are displayed
**in the web debug toolbar**.
Translation
-----------
With `LoggingTranslator`, a new translator class is introduced with Symfony
2.6. By default, the `@translator` service is referring to this class in the
debug environment.
If you have own services that depend on the `@translator` service and expect
this service to be an instance of either
`Symfony\Component\Translation\Translator` or
`Symfony\Bundle\FrameworkBundle\Translation\Translator`, e.g. by type-hinting
for either of these classes, you will need to change that type hint. You can
use the `TranslatorInterface` to be on the safe side for future changes.
Before:
```php
use Symfony\Component\Translation\Translator;
class MyService {
public function __construct(Translator $translator)
{
...
}
}
```
After:
```php
use Symfony\Component\Translation\TranslatorInterface;
class MyService {
public function __construct(TranslatorInterface $translator)
{
...
}
}
```