Skip to content

Commit 6e60729

Browse files
seo page entity is now created with factory
1 parent 2e76660 commit 6e60729

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

src/Model/Seo/Page/SeoPageFacade.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@ class SeoPageFacade
2121
* @param \Shopsys\FrameworkBundle\Component\Router\FriendlyUrl\FriendlyUrlFacade $friendlyUrlFacade
2222
* @param \Shopsys\FrameworkBundle\Model\Seo\Page\SeoPageRepository $seoPageRepository
2323
* @param \Shopsys\FrameworkBundle\Component\Image\ImageFacade $imageFacade
24+
* @param \Shopsys\FrameworkBundle\Model\Seo\Page\SeoPageFactory $seoPageFactory
2425
*/
2526
public function __construct(
2627
protected readonly Domain $domain,
2728
protected readonly EntityManagerInterface $em,
2829
protected readonly FriendlyUrlFacade $friendlyUrlFacade,
2930
protected readonly SeoPageRepository $seoPageRepository,
3031
protected readonly ImageFacade $imageFacade,
32+
protected readonly SeoPageFactory $seoPageFactory,
3133
) {
3234
}
3335

@@ -37,7 +39,7 @@ public function __construct(
3739
*/
3840
public function create(SeoPageData $seoPageData): SeoPage
3941
{
40-
$seoPage = new SeoPage($seoPageData);
42+
$seoPage = $this->seoPageFactory->create($seoPageData);
4143

4244
$this->em->persist($seoPage);
4345
$this->em->flush();
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Shopsys\FrameworkBundle\Model\Seo\Page;
6+
7+
use Shopsys\FrameworkBundle\Component\EntityExtension\EntityNameResolver;
8+
9+
class SeoPageFactory
10+
{
11+
/**
12+
* @param \Shopsys\FrameworkBundle\Component\EntityExtension\EntityNameResolver $entityNameResolver
13+
*/
14+
public function __construct(
15+
protected readonly EntityNameResolver $entityNameResolver,
16+
) {
17+
}
18+
19+
/**
20+
* @param \Shopsys\FrameworkBundle\Model\Seo\Page\SeoPageData $data
21+
* @return \Shopsys\FrameworkBundle\Model\Seo\Page\SeoPage
22+
*/
23+
public function create(SeoPageData $data): SeoPage
24+
{
25+
$classData = $this->entityNameResolver->resolve(SeoPage::class);
26+
27+
return new $classData($data);
28+
}
29+
}

0 commit comments

Comments
 (0)