Skip to content
This repository was archived by the owner on Nov 21, 2019. It is now read-only.

Commit ef47d36

Browse files
Separate View into different implementations (#63)
* Separate View into different implementations * Not needed * Reset * Allow BuildViewEvent to be changed to a non-TemplateView, and make View implement ArrayAccess * Loosen return type * Not needed * Update signature * Can simplify * Simplify even more * Actually read what it's trying to tell me * Test immutability * Keep assertions
1 parent 62f6e28 commit ef47d36

File tree

74 files changed

+790
-409
lines changed

Some content is hidden

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

74 files changed

+790
-409
lines changed

vendor-extra/JatsContentBundle/src/EventListener/BuildView/BoldListener.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use FluentDOM\DOM\Element;
88
use Libero\ViewsBundle\Views\ConvertsChildren;
99
use Libero\ViewsBundle\Views\OptionalTemplateListener;
10-
use Libero\ViewsBundle\Views\View;
10+
use Libero\ViewsBundle\Views\TemplateView;
1111
use Libero\ViewsBundle\Views\ViewConverter;
1212
use function Libero\ViewsBundle\array_has_key;
1313

@@ -21,7 +21,7 @@ public function __construct(ViewConverter $converter)
2121
$this->converter = $converter;
2222
}
2323

24-
protected function handle(Element $object, View $view) : View
24+
protected function handle(Element $object, TemplateView $view) : TemplateView
2525
{
2626
return $view->withArgument('text', $this->convertChildren($object, $view->getContext()));
2727
}

vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTitleContentHeaderListener.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use FluentDOM\DOM\Element;
88
use Libero\ViewsBundle\Views\SimplifiedViewConverterListener;
9+
use Libero\ViewsBundle\Views\TemplateView;
910
use Libero\ViewsBundle\Views\View;
1011
use Libero\ViewsBundle\Views\ViewConverter;
1112
use function Libero\ViewsBundle\array_has_key;
@@ -21,7 +22,7 @@ public function __construct(ViewConverter $converter)
2122
$this->converter = $converter;
2223
}
2324

24-
protected function handle(Element $object, View $view) : View
25+
protected function handle(Element $object, TemplateView $view) : View
2526
{
2627
$title = $object->ownerDocument->xpath()
2728
->firstOf('jats:article-meta/jats:title-group/jats:article-title', $object);

vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontArticleTypeContentMetaListener.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use FluentDOM\DOM\Element;
88
use Libero\ViewsBundle\Views\ContextAwareTranslation;
99
use Libero\ViewsBundle\Views\SimplifiedViewConverterListener;
10+
use Libero\ViewsBundle\Views\TemplateView;
1011
use Libero\ViewsBundle\Views\View;
1112
use Symfony\Contracts\Translation\TranslatorInterface;
1213
use function sprintf;
@@ -24,7 +25,7 @@ public function __construct(TranslatorInterface $translator, array $translationK
2425
$this->translationKeys = $translationKeys;
2526
}
2627

27-
protected function handle(Element $object, View $view) : View
28+
protected function handle(Element $object, TemplateView $view) : View
2829
{
2930
$items = $view->getArgument('items') ?? [];
3031

vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontContentHeaderMetaListener.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use FluentDOM\DOM\Element;
88
use Libero\ViewsBundle\Views\ContextAwareTranslation;
99
use Libero\ViewsBundle\Views\SimplifiedViewConverterListener;
10+
use Libero\ViewsBundle\Views\TemplateView;
1011
use Libero\ViewsBundle\Views\View;
1112
use Libero\ViewsBundle\Views\ViewConverter;
1213
use Symfony\Contracts\Translation\TranslatorInterface;
@@ -25,7 +26,7 @@ public function __construct(ViewConverter $converter, TranslatorInterface $trans
2526
$this->translator = $translator;
2627
}
2728

28-
protected function handle(Element $object, View $view) : View
29+
protected function handle(Element $object, TemplateView $view) : View
2930
{
3031
$meta = $this->converter
3132
->convert($object, '@LiberoPatterns/content-meta.html.twig', $view->getContext())

vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontDisplayChannelContentMetaListener.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use FluentDOM\DOM\Element;
88
use Libero\ViewsBundle\Views\ContextAwareTranslation;
99
use Libero\ViewsBundle\Views\SimplifiedViewConverterListener;
10+
use Libero\ViewsBundle\Views\TemplateView;
1011
use Libero\ViewsBundle\Views\View;
1112
use Libero\ViewsBundle\Views\ViewConverter;
1213
use Symfony\Contracts\Translation\TranslatorInterface;
@@ -28,7 +29,7 @@ public function __construct(ViewConverter $converter, TranslatorInterface $trans
2829
$this->translator = $translator;
2930
}
3031

31-
protected function handle(Element $object, View $view) : View
32+
protected function handle(Element $object, TemplateView $view) : View
3233
{
3334
$items = $view->getArgument('items') ?? [];
3435

vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontItemTagsListener.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use FluentDOM\DOM\Element;
99
use Libero\ViewsBundle\Views\ConvertsLists;
1010
use Libero\ViewsBundle\Views\SimplifiedViewConverterListener;
11+
use Libero\ViewsBundle\Views\TemplateView;
1112
use Libero\ViewsBundle\Views\View;
1213
use Libero\ViewsBundle\Views\ViewConverter;
1314
use function array_filter;
@@ -26,7 +27,7 @@ public function __construct(ViewConverter $converter)
2627
$this->converter = $converter;
2728
}
2829

29-
protected function handle(Element $object, View $view) : View
30+
protected function handle(Element $object, TemplateView $view) : View
3031
{
3132
/** @var DOMNodeList<Element> $keywordGroups */
3233
$keywordGroups = $object->ownerDocument->xpath()
@@ -40,7 +41,7 @@ protected function handle(Element $object, View $view) : View
4041
array_filter(
4142
array_map(
4243
function (View $tagList) : array {
43-
return $tagList->getArguments();
44+
return $tagList instanceof TemplateView ? $tagList->getArguments() : [];
4445
},
4546
$this->convertList($keywordGroups, '@LiberoPatterns/tag-list.html.twig', $view->getContext())
4647
)

vendor-extra/JatsContentBundle/src/EventListener/BuildView/FrontSubjectGroupContentHeaderListener.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Libero\ViewsBundle\Views\ContextAwareTranslation;
1010
use Libero\ViewsBundle\Views\ConvertsLists;
1111
use Libero\ViewsBundle\Views\SimplifiedViewConverterListener;
12+
use Libero\ViewsBundle\Views\TemplateView;
1213
use Libero\ViewsBundle\Views\View;
1314
use Libero\ViewsBundle\Views\ViewConverter;
1415
use Symfony\Contracts\Translation\TranslatorInterface;
@@ -28,7 +29,7 @@ public function __construct(ViewConverter $converter, TranslatorInterface $trans
2829
$this->translator = $translator;
2930
}
3031

31-
protected function handle(Element $object, View $view) : View
32+
protected function handle(Element $object, TemplateView $view) : View
3233
{
3334
/** @var DOMNodeList<Element> $subjects */
3435
$subjects = $object->ownerDocument->xpath()->evaluate(
@@ -50,7 +51,7 @@ protected function handle(Element $object, View $view) : View
5051
),
5152
],
5253
'items' => array_map(
53-
function (View $link) : array {
54+
function (TemplateView $link) : array {
5455
return ['content' => $link->getArguments()];
5556
},
5657
$this->convertList($subjects, '@LiberoPatterns/link.html.twig', $view->getContext())

vendor-extra/JatsContentBundle/src/EventListener/BuildView/HeadingListener.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use FluentDOM\DOM\Element;
88
use Libero\ViewsBundle\Views\ConvertsChildren;
99
use Libero\ViewsBundle\Views\SimplifiedViewConverterListener;
10+
use Libero\ViewsBundle\Views\TemplateView;
1011
use Libero\ViewsBundle\Views\View;
1112
use Libero\ViewsBundle\Views\ViewConverter;
1213
use function Libero\ViewsBundle\array_has_key;
@@ -22,7 +23,7 @@ public function __construct(ViewConverter $converter)
2223
$this->converter = $converter;
2324
}
2425

25-
protected function handle(Element $object, View $view) : View
26+
protected function handle(Element $object, TemplateView $view) : View
2627
{
2728
if ($view->hasContext('level')) {
2829
$view = $view->withArgument('level', $view->getContext('level'));

vendor-extra/JatsContentBundle/src/EventListener/BuildView/ItalicListener.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use FluentDOM\DOM\Element;
88
use Libero\ViewsBundle\Views\ConvertsChildren;
99
use Libero\ViewsBundle\Views\OptionalTemplateListener;
10-
use Libero\ViewsBundle\Views\View;
10+
use Libero\ViewsBundle\Views\TemplateView;
1111
use Libero\ViewsBundle\Views\ViewConverter;
1212
use function Libero\ViewsBundle\array_has_key;
1313

@@ -21,7 +21,7 @@ public function __construct(ViewConverter $converter)
2121
$this->converter = $converter;
2222
}
2323

24-
protected function handle(Element $object, View $view) : View
24+
protected function handle(Element $object, TemplateView $view) : TemplateView
2525
{
2626
return $view->withArgument('text', $this->convertChildren($object, $view->getContext()));
2727
}

vendor-extra/JatsContentBundle/src/EventListener/BuildView/KeywordGroupTagListListener.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Libero\ViewsBundle\Views\ContextAwareTranslation;
1010
use Libero\ViewsBundle\Views\ConvertsLists;
1111
use Libero\ViewsBundle\Views\SimplifiedViewConverterListener;
12+
use Libero\ViewsBundle\Views\TemplateView;
1213
use Libero\ViewsBundle\Views\View;
1314
use Libero\ViewsBundle\Views\ViewConverter;
1415
use Symfony\Contracts\Translation\TranslatorInterface;
@@ -31,7 +32,7 @@ public function __construct(ViewConverter $converter, TranslatorInterface $trans
3132
$this->translationKeys = $translationKeys;
3233
}
3334

34-
protected function handle(Element $object, View $view) : View
35+
protected function handle(Element $object, TemplateView $view) : View
3536
{
3637
$title = $object->ownerDocument->xpath()
3738
->firstOf('jats:title', $object);
@@ -46,8 +47,13 @@ protected function handle(Element $object, View $view) : View
4647
$type = $object->getAttribute('kwd-group-type');
4748

4849
if ($title instanceof Element) {
49-
$title = $this->converter->convert($title, '@LiberoPatterns/heading.html.twig', $view->getContext())
50-
->getArguments();
50+
$title = $this->converter->convert($title, '@LiberoPatterns/heading.html.twig', $view->getContext());
51+
52+
if (!$title instanceof TemplateView) {
53+
return $view;
54+
}
55+
56+
$title = $title->getArguments();
5157
} elseif (!isset($this->translationKeys[$type])) {
5258
return $view;
5359
} else {
@@ -60,7 +66,7 @@ protected function handle(Element $object, View $view) : View
6066
'list',
6167
[
6268
'items' => array_map(
63-
function (View $link) : array {
69+
function (TemplateView $link) : array {
6470
return ['content' => $link->getArguments()];
6571
},
6672
$this->convertList($keywords, '@LiberoPatterns/link.html.twig', $view->getContext())

0 commit comments

Comments
 (0)