Skip to content

Commit 7629299

Browse files
committed
feature: review translations loaders
1 parent 0ee0f75 commit 7629299

19 files changed

+166
-293
lines changed

DependencyInjection/JMSTranslationExtension.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use Symfony\Component\Config\FileLocator;
2525
use Symfony\Component\DependencyInjection\ContainerBuilder;
2626
use Symfony\Component\DependencyInjection\Definition;
27+
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
2728
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
2829
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
2930

@@ -33,6 +34,8 @@ public function load(array $configs, ContainerBuilder $container): void
3334
{
3435
$config = $this->processConfiguration(new Configuration($container), $configs);
3536

37+
$loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
38+
$loader->load('services.php');
3639
$loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
3740
$loader->load('services.xml');
3841
$loader->load('console.xml');

Resources/config/services.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
use JMS\TranslationBundle\Translation\Updater;
6+
7+
return static function (ContainerConfigurator $container) {
8+
$container->services()
9+
->set('jms_translation.updater', Updater::class)
10+
->args([
11+
service('jms_translation.loader_manager'),
12+
service('jms_translation.extractor_manager'),
13+
service('jms_translation.file_writer'),
14+
service('logger'),
15+
])
16+
->alias(Updater::class, 'jms_translation.updater')
17+
;
18+
};

Resources/config/services.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131

3232
<parameter key="jms_translation.file_writer.class">JMS\TranslationBundle\Translation\FileWriter</parameter>
3333

34-
<parameter key="jms_translation.updater.class">JMS\TranslationBundle\Translation\Updater</parameter>
3534
<parameter key="jms_translation.config_factory.class">JMS\TranslationBundle\Translation\ConfigFactory</parameter>
3635
<parameter key="jms_translation.file_source_factory.class">JMS\TranslationBundle\Translation\FileSourceFactory</parameter>
3736
</parameters>
@@ -56,13 +55,6 @@
5655

5756
<service id="JMS\TranslationBundle\Controller\ApiController" alias="jms_translation.controller.api_controller" public="true"/>
5857

59-
<service id="jms_translation.updater" class="%jms_translation.updater.class%" public="true">
60-
<argument type="service" id="jms_translation.loader_manager" />
61-
<argument type="service" id="jms_translation.extractor_manager" />
62-
<argument type="service" id="logger" />
63-
<argument type="service" id="jms_translation.file_writer" />
64-
</service>
65-
6658
<service id="jms_translation.config_factory" class="%jms_translation.config_factory.class%" public="true"/>
6759

6860
<service id="jms_translation.file_source_factory" class="%jms_translation.file_source_factory.class%">

Tests/Functional/ServiceInstantiationTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ protected function setUp(): void
2424
public static function provider(): array
2525
{
2626
return [
27-
['jms_translation.updater', Updater::class],
2827
['jms_translation.config_factory', ConfigFactory::class],
2928
['jms_translation.twig_extension', TranslationExtension::class],
3029
];

Tests/Translation/FileWriterTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public function testCatalogueIsSortedBeforeBeingDumped(): void
3838
->method('dump')
3939
->willReturnCallback(static function ($v) use ($self) {
4040
$self->assertEquals(['foo.bar', 'foo.bar.baz'], array_keys($v->getDomain('messages')->all()));
41+
42+
return '';
4143
});
4244

4345
$writer = new FileWriter(['test' => $dumper]);

Translation/Comparison/CatalogueComparator.php

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,31 +29,27 @@
2929
*/
3030
class CatalogueComparator
3131
{
32-
private array $domains = [];
33-
private array $ignoredDomains = [];
32+
public function __construct(
33+
private array $domains = [],
34+
private array $ignoredDomains = [],
35+
) {
36+
}
3437

35-
public function setDomains(array $domains)
38+
public function setDomains(array $domains): static
3639
{
3740
$this->domains = $domains;
41+
42+
return $this;
3843
}
3944

40-
/**
41-
* @param array $domains
42-
*/
43-
public function setIgnoredDomains(array $domains)
45+
public function setIgnoredDomains(array $domains): static
4446
{
4547
$this->ignoredDomains = $domains;
48+
49+
return $this;
4650
}
4751

48-
/**
49-
* Compares two message catalogues.
50-
*
51-
* @param MessageCatalogue $current
52-
* @param MessageCatalogue $new
53-
*
54-
* @return ChangeSet
55-
*/
56-
public function compare(MessageCatalogue $current, MessageCatalogue $new)
52+
public function compare(MessageCatalogue $current, MessageCatalogue $new): ChangeSet
5753
{
5854
$newMessages = [];
5955

@@ -78,6 +74,7 @@ public function compare(MessageCatalogue $current, MessageCatalogue $new)
7874
}
7975

8076
$deletedMessages = [];
77+
8178
foreach ($current->getDomains() as $name => $domain) {
8279
if ($this->domains && !isset($this->domains[$name])) {
8380
continue;

Translation/Comparison/ChangeSet.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,30 @@
2020

2121
namespace JMS\TranslationBundle\Translation\Comparison;
2222

23+
use JMS\TranslationBundle\Model\Message;
24+
2325
class ChangeSet
2426
{
25-
private array $addedMessages;
26-
27-
private array $deletedMessages;
28-
29-
public function __construct(array $addedMessages, array $deletedMessages)
30-
{
31-
$this->addedMessages = $addedMessages;
32-
$this->deletedMessages = $deletedMessages;
27+
public function __construct(
28+
/** @var Message[] */
29+
private readonly array $addedMessages,
30+
/** @var Message[] */
31+
private readonly array $deletedMessages,
32+
) {
3333
}
3434

3535
/**
36-
* @return array
36+
* @return Message[]
3737
*/
38-
public function getAddedMessages()
38+
public function getAddedMessages(): array
3939
{
4040
return $this->addedMessages;
4141
}
4242

4343
/**
44-
* @return array
44+
* @return Message[]
4545
*/
46-
public function getDeletedMessages()
46+
public function getDeletedMessages(): array
4747
{
4848
return $this->deletedMessages;
4949
}

Translation/Dumper/ArrayStructureDumper.php

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,15 @@ abstract class ArrayStructureDumper implements DumperInterface
2727
{
2828
private bool $prettyPrint = true;
2929

30-
public function setPrettyPrint($bool)
30+
public function setPrettyPrint(bool $bool): static
3131
{
32-
$this->prettyPrint = (bool) $bool;
32+
$this->prettyPrint = $bool;
33+
34+
return $this;
3335
}
3436

35-
/**
36-
* @param MessageCatalogue $catalogue
37-
* @param string $domain
38-
*
39-
* @return string
40-
*/
41-
public function dump(MessageCatalogue $catalogue, $domain = 'messages')
37+
#[\Override()]
38+
public function dump(MessageCatalogue $catalogue, string $domain = 'messages'): string
4239
{
4340
$structure = $catalogue->getDomain($domain)->all();
4441

@@ -81,10 +78,5 @@ public function dump(MessageCatalogue $catalogue, $domain = 'messages')
8178
return $this->dumpStructure($structure);
8279
}
8380

84-
/**
85-
* @param array $structure
86-
*
87-
* @return string
88-
*/
89-
abstract protected function dumpStructure(array $structure);
81+
abstract protected function dumpStructure(array $structure): string;
9082
}

Translation/Dumper/DumperInterface.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ interface DumperInterface
3434
{
3535
/**
3636
* Dumps the messages of the given domain.
37-
*
38-
* @param MessageCatalogue $catalogue
39-
* @param string $domain
40-
*
41-
* @return string
4237
*/
43-
public function dump(MessageCatalogue $catalogue, $domain = 'messages');
38+
public function dump(MessageCatalogue $catalogue, string $domain = 'messages'): string;
4439
}

Translation/Dumper/PhpDumper.php

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,13 @@
2525

2626
class PhpDumper extends ArrayStructureDumper
2727
{
28-
private Writer $writer;
29-
30-
public function __construct()
31-
{
32-
$this->writer = new Writer();
28+
public function __construct(
29+
private Writer $writer = new Writer(),
30+
) {
3331
}
3432

35-
/**
36-
* @param array $structure
37-
*
38-
* @return string
39-
*/
40-
protected function dumpStructure(array $structure)
33+
#[\Override()]
34+
protected function dumpStructure(array $structure): string
4135
{
4236
$this->writer
4337
->reset()
@@ -50,10 +44,7 @@ protected function dumpStructure(array $structure)
5044
return $this->writer->outdent()->writeln(');')->getContent();
5145
}
5246

53-
/**
54-
* @param array $structure
55-
*/
56-
private function dumpStructureRecursively(array $structure)
47+
private function dumpStructureRecursively(array $structure): void
5748
{
5849
$isFirst = true;
5950
$precededByMessage = false;

0 commit comments

Comments
 (0)