Skip to content

Commit 2e76660

Browse files
stock entity is now created with factory
1 parent 99f680a commit 2e76660

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

src/Model/Stock/StockFacade.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ class StockFacade
1515
* @param \Shopsys\FrameworkBundle\Model\Stock\StockRepository $stockRepository
1616
* @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $eventDispatcher
1717
* @param \Shopsys\FrameworkBundle\Model\Stock\ProductStockFacade $productStockFacade
18+
* @param \Shopsys\FrameworkBundle\Model\Stock\StockFactory $stockFactory
1819
*/
1920
public function __construct(
2021
protected readonly EntityManagerInterface $em,
2122
protected readonly StockRepository $stockRepository,
2223
protected readonly EventDispatcherInterface $eventDispatcher,
2324
protected readonly ProductStockFacade $productStockFacade,
25+
protected readonly StockFactory $stockFactory,
2426
) {
2527
}
2628

@@ -30,7 +32,7 @@ public function __construct(
3032
*/
3133
public function create(StockData $stockData): Stock
3234
{
33-
$stock = new Stock($stockData);
35+
$stock = $this->stockFactory->create($stockData);
3436
$this->em->persist($stock);
3537
$this->em->flush();
3638

src/Model/Stock/StockFactory.php

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\Stock;
6+
7+
use Shopsys\FrameworkBundle\Component\EntityExtension\EntityNameResolver;
8+
9+
class StockFactory
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\Stock\StockData $stockData
21+
* @return \Shopsys\FrameworkBundle\Model\Stock\Stock
22+
*/
23+
public function create(StockData $stockData): Stock
24+
{
25+
$classData = $this->entityNameResolver->resolve(Stock::class);
26+
27+
return new $classData($stockData);
28+
}
29+
}

0 commit comments

Comments
 (0)