Skip to content

Commit e1228da

Browse files
Olivier DolbeauNyholm
authored andcommitted
SF 5.x compatibility (#356)
* SF 5.x compatibility * Use class_exists to deal with next events class * Alaways use ChildDefinition in extension * Remove useless PHPDoc * Get rid of unecessary translation.reader_or_loader service * Require php-translation/symfony-storage ^2.0
1 parent ceccbde commit e1228da

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+491
-309
lines changed

Catalogue/CatalogueFetcher.php

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@
1212
namespace Translation\Bundle\Catalogue;
1313

1414
use Nyholm\NSA;
15-
use Symfony\Bundle\FrameworkBundle\Translation\TranslationLoader as SymfonyTranslationLoader;
1615
use Symfony\Component\Translation\MessageCatalogue;
1716
use Symfony\Component\Translation\Reader\TranslationReaderInterface;
1817
use Translation\Bundle\Model\Configuration;
19-
use Translation\SymfonyStorage\LegacyTranslationReader;
20-
use Translation\SymfonyStorage\TranslationLoader;
2118

2219
/**
2320
* Fetches catalogues from source files. This will only work with local file storage
@@ -29,20 +26,10 @@
2926
*/
3027
final class CatalogueFetcher
3128
{
32-
/**
33-
* @var TranslationReaderInterface
34-
*/
3529
private $reader;
3630

37-
/**
38-
* @param SymfonyTranslationLoader|TranslationLoader|TranslationReaderInterface $reader
39-
*/
40-
public function __construct($reader)
31+
public function __construct(TranslationReaderInterface $reader)
4132
{
42-
if (!$reader instanceof TranslationReaderInterface) {
43-
$reader = new LegacyTranslationReader($reader);
44-
}
45-
4633
$this->reader = $reader;
4734
}
4835

Catalogue/CatalogueWriter.php

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,8 @@
1212
namespace Translation\Bundle\Catalogue;
1313

1414
use Symfony\Component\Translation\MessageCatalogue;
15-
use Symfony\Component\Translation\Writer\TranslationWriter;
1615
use Symfony\Component\Translation\Writer\TranslationWriterInterface;
1716
use Translation\Bundle\Model\Configuration;
18-
use Translation\SymfonyStorage\LegacyTranslationWriter;
1917

2018
/**
2119
* Write catalogues back to disk.
@@ -26,22 +24,11 @@
2624
*/
2725
final class CatalogueWriter
2826
{
29-
/**
30-
* @var TranslationWriterInterface
31-
*/
3227
private $writer;
33-
34-
/**
35-
* @var string
36-
*/
3728
private $defaultLocale;
3829

39-
public function __construct(TranslationWriter $writer, string $defaultLocale)
30+
public function __construct(TranslationWriterInterface $writer, string $defaultLocale)
4031
{
41-
if (!$writer instanceof TranslationWriterInterface) {
42-
$writer = new LegacyTranslationWriter($writer);
43-
}
44-
4532
$this->writer = $writer;
4633
$this->defaultLocale = $defaultLocale;
4734
}

Controller/EditInPlaceController.php

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,33 @@
1111

1212
namespace Translation\Bundle\Controller;
1313

14-
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
14+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
1515
use Symfony\Component\HttpFoundation\Request;
1616
use Symfony\Component\HttpFoundation\Response;
17+
use Symfony\Component\Validator\Validator\ValidatorInterface;
1718
use Translation\Bundle\Exception\MessageValidationException;
19+
use Translation\Bundle\Service\CacheClearer;
20+
use Translation\Bundle\Service\StorageManager;
1821
use Translation\Bundle\Service\StorageService;
1922
use Translation\Common\Model\Message;
2023
use Translation\Common\Model\MessageInterface;
2124

2225
/**
2326
* @author Damien Alexandre <dalexandre@jolicode.com>
2427
*/
25-
class EditInPlaceController extends Controller
28+
class EditInPlaceController extends AbstractController
2629
{
30+
private $storageManager;
31+
private $cacheClearer;
32+
private $validator;
33+
34+
public function __construct(StorageManager $storageManager, CacheClearer $cacheClearer, ValidatorInterface $validator)
35+
{
36+
$this->storageManager = $storageManager;
37+
$this->cacheClearer = $cacheClearer;
38+
$this->validator = $validator;
39+
}
40+
2741
public function editAction(Request $request, string $configName, string $locale): Response
2842
{
2943
try {
@@ -33,13 +47,12 @@ public function editAction(Request $request, string $configName, string $locale)
3347
}
3448

3549
/** @var StorageService $storage */
36-
$storage = $this->get('php_translation.storage_manager')->getStorage($configName);
50+
$storage = $this->storageManager->getStorage($configName);
3751
foreach ($messages as $message) {
3852
$storage->update($message);
3953
}
4054

41-
$cacheClearer = $this->get('php_translation.cache_clearer');
42-
$cacheClearer->clearAndWarmUp($locale);
55+
$this->cacheClearer->clearAndWarmUp($locale);
4356

4457
return new Response();
4558
}
@@ -56,14 +69,13 @@ private function getMessages(Request $request, string $locale, array $validation
5669
$json = $request->getContent();
5770
$data = \json_decode($json, true);
5871
$messages = [];
59-
$validator = $this->get('validator');
6072

6173
foreach ($data as $key => $value) {
6274
[$domain, $translationKey] = \explode('|', $key);
6375

6476
$message = new Message($translationKey, $domain, $locale, $value);
6577

66-
$errors = $validator->validate($message, null, $validationGroups);
78+
$errors = $this->validator->validate($message, null, $validationGroups);
6779
if (\count($errors) > 0) {
6880
throw MessageValidationException::create();
6981
}

Controller/SymfonyProfilerController.php

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111

1212
namespace Translation\Bundle\Controller;
1313

14-
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
14+
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
1515
use Symfony\Component\HttpFoundation\Request;
1616
use Symfony\Component\HttpFoundation\Response;
17+
use Symfony\Component\HttpKernel\Profiler\Profiler;
1718
use Symfony\Component\Translation\DataCollectorTranslator;
1819
use Symfony\Component\VarDumper\Cloner\Data;
1920
use Translation\Bundle\Model\SfProfilerMessage;
@@ -23,11 +24,22 @@
2324
/**
2425
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
2526
*/
26-
class SymfonyProfilerController extends Controller
27+
class SymfonyProfilerController extends AbstractController
2728
{
29+
private $storage;
30+
private $profiler;
31+
private $isToolbarAllowEdit;
32+
33+
public function __construct(StorageService $storage, Profiler $profiler, bool $isToolbarAllowEdit)
34+
{
35+
$this->storage = $storage;
36+
$this->profiler = $profiler;
37+
$this->isToolbarAllowEdit = $isToolbarAllowEdit;
38+
}
39+
2840
public function editAction(Request $request, string $token): Response
2941
{
30-
if (!$this->getParameter('php_translation.toolbar.allow_edit')) {
42+
if (!$this->isToolbarAllowEdit) {
3143
return new Response('You are not allowed to edit the translations.');
3244
}
3345

@@ -36,11 +48,9 @@ public function editAction(Request $request, string $token): Response
3648
}
3749

3850
$message = $this->getMessage($request, $token);
39-
/** @var StorageService $storage */
40-
$storage = $this->get('php_translation.storage');
4151

4252
if ($request->isMethod('GET')) {
43-
$translation = $storage->syncAndFetchMessage($message->getLocale(), $message->getDomain(), $message->getKey());
53+
$translation = $this->storage->syncAndFetchMessage($message->getLocale(), $message->getDomain(), $message->getKey());
4454

4555
return $this->render('@Translation/SymfonyProfiler/edit.html.twig', [
4656
'message' => $translation,
@@ -50,7 +60,7 @@ public function editAction(Request $request, string $token): Response
5060

5161
//Assert: This is a POST request
5262
$message->setTranslation($request->request->get('translation'));
53-
$storage->update($message->convertToMessage());
63+
$this->storage->update($message->convertToMessage());
5464

5565
return new Response($message->getTranslation());
5666
}
@@ -61,10 +71,8 @@ public function syncAction(Request $request, string $token): Response
6171
return $this->redirectToRoute('_profiler', ['token' => $token]);
6272
}
6373

64-
/** @var StorageService $storage */
65-
$storage = $this->get('php_translation.storage');
6674
$sfMessage = $this->getMessage($request, $token);
67-
$message = $storage->syncAndFetchMessage($sfMessage->getLocale(), $sfMessage->getDomain(), $sfMessage->getKey());
75+
$message = $this->storage->syncAndFetchMessage($sfMessage->getLocale(), $sfMessage->getDomain(), $sfMessage->getKey());
6876

6977
if (null !== $message) {
7078
return new Response($message->getTranslation());
@@ -82,9 +90,7 @@ public function syncAllAction(Request $request, string $token): Response
8290
return $this->redirectToRoute('_profiler', ['token' => $token]);
8391
}
8492

85-
/** @var StorageService $storage */
86-
$storage = $this->get('php_translation.storage');
87-
$storage->sync();
93+
$this->storage->sync();
8894

8995
return new Response('Started synchronization of all translations');
9096
}
@@ -106,10 +112,8 @@ public function createAssetsAction(Request $request, string $token): Response
106112
}
107113

108114
$uploaded = [];
109-
/** @var StorageService $storage */
110-
$storage = $this->get('php_translation.storage');
111115
foreach ($messages as $message) {
112-
$storage->create($message);
116+
$this->storage->create($message);
113117
$uploaded[] = $message;
114118
}
115119

0 commit comments

Comments
 (0)