mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-01-09 22:17:26 +01:00
Added FormClassNameService
This commit is contained in:
parent
a94639b992
commit
1d8a0f0b19
@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domain\FormManagement;
|
||||||
|
|
||||||
|
use App\Entity\EntityInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kevinfrantz
|
||||||
|
*/
|
||||||
|
final class FormClassNameService implements FormClassNameServiceInterface
|
||||||
|
{
|
||||||
|
const ENTITY_BASE_PATH = 'App\\Entity';
|
||||||
|
|
||||||
|
const FORM_BASE_PATH = 'App\\Form';
|
||||||
|
|
||||||
|
const SUFFIX = 'Type';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param EntityInterface $entity
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getName(EntityInterface $entity): string
|
||||||
|
{
|
||||||
|
$class = get_class($entity);
|
||||||
|
$replaced = str_replace(self::ENTITY_BASE_PATH, self::FORM_BASE_PATH, $class);
|
||||||
|
$withSuffix = $replaced.self::SUFFIX;
|
||||||
|
|
||||||
|
return $withSuffix;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domain\FormManagement;
|
||||||
|
|
||||||
|
use App\Entity\EntityInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kevinfrantz
|
||||||
|
*/
|
||||||
|
interface FormClassNameServiceInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @param EntityInterface $entity
|
||||||
|
*
|
||||||
|
* @return string The name of the form of the entity
|
||||||
|
*/
|
||||||
|
public function getName(EntityInterface $entity): string;
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace tests\Unit\Domain\FormManagement;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use App\Domain\FormManagement\FormClassNameService;
|
||||||
|
use App\Entity\Source\PureSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kevinfrantz
|
||||||
|
*/
|
||||||
|
class FormClassNameServiceTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testGetName()
|
||||||
|
{
|
||||||
|
$entity = new PureSource();
|
||||||
|
$formNameService = new FormClassNameService();
|
||||||
|
$entityForm = $formNameService->getName($entity);
|
||||||
|
$this->assertEquals('App\\Form\\Source\\PureSourceType', $entityForm);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user