mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-01-09 14:07:25 +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