Skip to content

Commit af850d7

Browse files
authored
Merge pull request #51 from picamator/development
Release 5.4.3
2 parents cb96ae2 + f2fdb0e commit af850d7

File tree

50 files changed

+211
-190
lines changed

Some content is hidden

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

50 files changed

+211
-190
lines changed

AGENTS.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ Code Style
9898
* **validator** classes should have `public` methods prefixed by `validate`
9999
* methods returning `bool` should be prefixed by `is`
100100

101+
### Tests
102+
103+
- all tests classes should be a `final`
104+
101105
Module Structure
102106
----------------
103107

@@ -148,6 +152,19 @@ Docker Environment can be stopped by running the following command:
148152
docker/sdk stop
149153
```
150154

155+
How to Run PHP Script
156+
---------------------
157+
158+
The PHP script can be run by command:
159+
```console
160+
docker/sdk cli [path-to-script]
161+
```
162+
163+
For instance, the `./examples/try-transfer-generator.php`:
164+
```console
165+
docker/sdk cli ./examples/try-transfer-generator.php
166+
```
167+
151168
How to Generate Internal Transfer Objects
152169
-----------------------------------------
153170

composer.lock

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docker/sdk

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ function show_usage() {
2626
echo -e " $(wrap_in_yellow "build") Build Docker containers"
2727
echo -e " $(wrap_in_yellow "start") Start Docker containers (honors -x / -p)"
2828
echo -e " $(wrap_in_yellow "stop") Stop Docker containers"
29-
echo -e " $(wrap_in_yellow "cli") Open container shell"
29+
echo -e " $(wrap_in_yellow "cli") Open container shell or execute the PHP script when provided as an argument"
3030
echo -e " $(wrap_in_yellow "composer <command>") Run composer command"
3131
echo -e " $(wrap_in_yellow "phpstan") Run PHPStan"
3232
echo -e " $(wrap_in_yellow "phpunit") Run all PHPUnit tests or concrete test case when full qualified name provided as an argument"
@@ -84,7 +84,11 @@ case $1 in
8484
docker compose stop
8585
;;
8686
cli)
87-
$DOCKER_EXEC bash
87+
if [ -n "$2" ]; then
88+
$DOCKER_EXEC php -f $2
89+
else
90+
$DOCKER_EXEC bash
91+
fi
8892
;;
8993
composer)
9094
if [ -n "$5" ]; then

src/DefinitionGenerator/DefinitionGeneratorFacade.php

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,25 @@
99
use Picamator\TransferObject\DefinitionGenerator\Generator\DefinitionGeneratorFactory;
1010
use Picamator\TransferObject\Generated\DefinitionGeneratorTransfer;
1111

12-
class DefinitionGeneratorFacade implements DefinitionGeneratorFacadeInterface
12+
readonly class DefinitionGeneratorFacade implements DefinitionGeneratorFacadeInterface
1313
{
14-
private static DefinitionGeneratorFactory $factory;
14+
public function __construct(
15+
private DefinitionGeneratorFactory $factory = new DefinitionGeneratorFactory(),
16+
) {
17+
}
1518

1619
#[NoDiscard('The result should be used to validate how many definitions were generated.')]
1720
public function generateDefinitionsOrFail(DefinitionGeneratorTransfer $generatorTransfer): int
1821
{
19-
return $this->getFactory()
22+
return $this->factory
2023
->createDefinitionGeneratorService()
2124
->generateDefinitionsOrFail($generatorTransfer);
2225
}
2326

2427
#[NoDiscard('The builder should be used to create DefinitionGeneratorTransfer.')]
2528
public function createDefinitionGeneratorBuilder(): DefinitionGeneratorBuilderInterface
2629
{
27-
return $this->getFactory()
30+
return $this->factory
2831
->createDefinitionGeneratorBuilder();
2932
}
30-
31-
private function getFactory(): DefinitionGeneratorFactory
32-
{
33-
return self::$factory ??= new DefinitionGeneratorFactory();
34-
}
3533
}

src/DefinitionGenerator/Generator/DefinitionGeneratorFactory.php

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ class DefinitionGeneratorFactory
2929
{
3030
use SharedFactoryTrait;
3131

32-
private static DefinitionContentFactory $definitionContentFactory;
32+
public function __construct(
33+
private readonly DefinitionContentFactory $definitionContentFactory = new DefinitionContentFactory(),
34+
) {
35+
}
3336

3437
public function createDefinitionGeneratorService(): DefinitionGeneratorServiceInterface
3538
{
@@ -117,12 +120,7 @@ className: TemplateRender::class,
117120

118121
protected function createContentReader(): ContentReaderInterface
119122
{
120-
return $this->getDefinitionContentFactory()
123+
return $this->definitionContentFactory
121124
->createContentReader();
122125
}
123-
124-
protected function getDefinitionContentFactory(): DefinitionContentFactory
125-
{
126-
return self::$definitionContentFactory ??= new DefinitionContentFactory();
127-
}
128126
}

src/TransferGenerator/Definition/DefinitionFactory.php

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ class DefinitionFactory
2020
use ConfigFactoryTrait;
2121
use SharedFactoryTrait;
2222

23-
private static ValidatorFactory $validatorFactory;
24-
25-
private static ParserFactory $parserFactory;
23+
public function __construct(
24+
private readonly ValidatorFactory $validatorFactory = new ValidatorFactory(),
25+
private readonly ParserFactory $parserFactory = new ParserFactory(),
26+
) {
27+
}
2628

2729
public function createDefinitionReader(): DefinitionReaderInterface
2830
{
@@ -39,7 +41,7 @@ public function createDefinitionReader(): DefinitionReaderInterface
3941

4042
protected function createDefinitionValidator(): DefinitionValidatorInterface
4143
{
42-
return $this->getValidatorFactory()->createDefinitionValidator();
44+
return $this->validatorFactory->createDefinitionValidator();
4345
}
4446

4547
protected function createDefinitionFinder(): DefinitionFinderInterface
@@ -52,16 +54,6 @@ protected function createDefinitionFinder(): DefinitionFinderInterface
5254

5355
protected function createDefinitionParser(): DefinitionParserInterface
5456
{
55-
return $this->getParserFactory()->createDefinitionParser();
56-
}
57-
58-
protected function getValidatorFactory(): ValidatorFactory
59-
{
60-
return self::$validatorFactory ??= new ValidatorFactory();
61-
}
62-
63-
protected function getParserFactory(): ParserFactory
64-
{
65-
return self::$parserFactory ??= new ParserFactory();
57+
return $this->parserFactory->createDefinitionParser();
6658
}
6759
}

src/TransferGenerator/Generator/Generator/WorkflowFactory.php

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ class WorkflowFactory
1313
{
1414
use SharedFactoryTrait;
1515

16-
private static GeneratorFactory $generatorFactory;
16+
public function __construct(
17+
private readonly GeneratorFactory $generatorFactory = new GeneratorFactory(),
18+
) {
19+
}
1720

1821
public function createTransferGeneratorWorkflow(): TransferGeneratorWorkflowInterface
1922
{
@@ -26,11 +29,6 @@ public function createTransferGeneratorWorkflow(): TransferGeneratorWorkflowInte
2629

2730
protected function createGeneratorProcessor(): GeneratorProcessorInterface
2831
{
29-
return $this->getGeneratorFactory()->createGeneratorProcessor();
30-
}
31-
32-
protected function getGeneratorFactory(): GeneratorFactory
33-
{
34-
return self::$generatorFactory ??= new GeneratorFactory();
32+
return $this->generatorFactory->createGeneratorProcessor();
3533
}
3634
}

src/TransferGenerator/Generator/Render/RenderFactory.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use Picamator\TransferObject\TransferGenerator\Generator\Render\Template\Helper\TemplateHelper;
2323
use Picamator\TransferObject\TransferGenerator\Generator\Render\Template\Helper\TemplateHelperInterface;
2424
use Picamator\TransferObject\TransferGenerator\Generator\Render\Template\Template;
25+
use Picamator\TransferObject\TransferGenerator\Generator\Render\Template\TemplateInterface;
2526

2627
class RenderFactory
2728
{
@@ -45,7 +46,7 @@ className: TemplateRender::class,
4546
return $templateRender;
4647
}
4748

48-
protected function createTemplate(): Template
49+
protected function createTemplate(): TemplateInterface
4950
{
5051
return new Template($this->createTemplateHelper());
5152
}

src/TransferGenerator/Generator/Render/Template/Template.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
use Picamator\TransferObject\Generated\TemplateTransfer;
88
use Picamator\TransferObject\TransferGenerator\Generator\Render\Template\Helper\TemplateHelperInterface;
99

10-
readonly class Template
10+
readonly class Template implements TemplateInterface
1111
{
1212
public function __construct(private TemplateHelperInterface $helper)
1313
{
1414
}
1515

16-
public function __invoke(TemplateTransfer $templateTransfer): string
16+
public function render(TemplateTransfer $templateTransfer): string
1717
{
1818
$this->helper->setTemplateTransfer($templateTransfer);
1919

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Picamator\TransferObject\TransferGenerator\Generator\Render\Template;
6+
7+
use Picamator\TransferObject\Generated\TemplateTransfer;
8+
9+
interface TemplateInterface
10+
{
11+
public function render(TemplateTransfer $templateTransfer): string;
12+
}

0 commit comments

Comments
 (0)