Skip to content
Snippets Groups Projects
Commit 45628d99 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Possibilité de créer des entités

parent 1cae8e66
No related branches found
No related tags found
No related merge requests found
Pipeline #10525 failed
<?php
use UnicaenCode\Form\ElementMaker;
use UnicaenCode\Util;
/**
* @var $this \Application\View\Renderer\PhpRenderer
* @var $controller \Zend\Mvc\Controller\AbstractController
* @var $container \Interop\Container\ContainerInterface
* @var $viewName string
* @var $viewFile string
*/
?>
<h1>Création d'une nouvelle entité</h1>
<h3>Etape 1 : Paramétrage</h3>
<?php
$form = new \Zend\Form\Form();
$form->add(ElementMaker::text(
'class', 'Classe de l\'entité', 'Application\Entity\Album',
));
$form->add(ElementMaker::checkbox(
'generateTrait', 'Générer un trait', true
));
$form->add(ElementMaker::checkbox(
'generateInterface', 'Générer une interface', false
));
$form->add(ElementMaker::checkbox(
'useGetter', 'Générer des getters dans les traits et les interfaces', true
));
$form->add(ElementMaker::submit('generate', 'Générer l\'entité'));
$form->setData($controller->getRequest()->getPost());
Util::displayForm($form);
if ($controller->getRequest()->isPost() && $form->isValid()) {
$sCodeGenerator = Util::codeGenerator();
$params = [
'generator' => 'Entity',
'class' => $form->get('class')->getValue(),
'echoExpanded' => true,
'write' => true,
];
if ($form->get('generateTrait')->getValue()) {
$params['awareTrait'] = [
'useGetter' => $form->get('useGetter')->getValue(),
];
}
if ($form->get('generateInterface')->getValue()) {
$params['awareInterface'] = [
'useGetter' => $form->get('useGetter')->getValue(),
];
}
?>
<h3>Etape 2 : Création du fichier source de l'entité</h3>
<?php $sCodeGenerator->generate($params); ?>
<div class="alert alert-info">Fichiers récupérables dans le dossier <?php echo $sCodeGenerator->getOutputDir() ?></div>
<?php
}
\ No newline at end of file
<?php
namespace <namespace>;
/**
* Description of <classname>
*
* @author <author>
*/
class <classname>
{
/* Placez ici vos accésseurs & méthodes */
}
\ No newline at end of file
<?php
namespace UnicaenCode\Generator;
use UnicaenCode\Util;
class Entity implements GeneratorInterface
{
/**
* @param array $params
*
* Paramètres en entrée :
*
* - class => string nom de la classe pour laquelle le AwareTrait sera généré
*
* @return array
*/
public function generate(array $params): array
{
$class = $params['class'] ?? null;
$type = $params['type'] ?? Util::classType($class) ?? 'Entity';
$author = $params['author'] ?? Util::getAuthor();
$template = $params['template'] ?? 'Entity';
$namespace = Util::classNamespace($class);
$classname = Util::classClassname($class);
$filename = Util::classFilename($class);
$params['namespace'] = $namespace;
$params['classname'] = $classname;
$params['author'] = $author;
$params['template'] = $template;
$params['type'] = $type;
$params['filename'] = $filename;
return $params;
}
public function generateFromParent(array $parentParams, array $params): array
{
return $params;
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment