Select Git revision
NewEntityService.php
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
NewEntityService.php 2.52 KiB
<?php
use UnicaenCode\Form\ElementMaker;
use UnicaenCode\Util;
/**
* @var $this \Zend\View\Renderer\PhpRenderer
* @var $controller \Zend\Mvc\Controller\AbstractController
* @var $viewName string
*/
?>
<h1>Création d'un nouveau service d'entité OSE</h1>
<h3>Etape 1 : Paramétrage</h3>
<?php
$form = new \Zend\Form\Form();
$form->add(ElementMaker::selectEntity(
'entity', 'Entité correspondante', 'Application\Entity\Db'
));
$form->add(ElementMaker::text('alias', 'Alias d\'entité'));
$form->add(ElementMaker::submit('generate', 'Générer le service'));
$form->setData($controller->getRequest()->getPost());
Util::displayForm($form);
if ($controller->getRequest()->isPost() && $form->isValid()) {
$module = 'Application';
$entity = $form->get('entity')->getValue();
$alias = $form->get('alias')->getValue();
$name = 'application' . $entity;
$targetFullClass = $module . '\\Service\\' . $entity . 'Service';
$sCodeGenerator = $controller->getServiceLocator()->get('UnicaenCode\CodeGenerator');
/* @var $sCodeGenerator \UnicaenCode\Service\CodeGenerator */
$params = $sCodeGenerator->generateServiceParams($targetFullClass, $name, $module);
$params['entity'] = $entity;
$params['alias'] = $alias;
$configFileName = 'module.config.php';
?>
<h3>Etape 2 : Création des fichiers sources du service</h3>
<?php
$sCodeGenerator->setTemplate('EntityService')->setParams($params)->generateToHtml($params['fileName'])->generateToFile($params['fileName']);
$p = $sCodeGenerator->generateServiceTraitParams($targetFullClass, $name, $module . '\Service');
$sCodeGenerator->setTemplate('ServiceAwareTrait')->setParams($p)->generateToHtml($p['fileName'])->generateToFile($p['fileName']);
$p = $sCodeGenerator->generateServiceInterfaceParams($targetFullClass, $name, $module . '\Service');
$sCodeGenerator->setTemplate('ServiceAwareInterface')->setParams($p)->generateToHtml($p['fileName'])->generateToFile($p['fileName']);
?>
<div class="alert alert-info">Les fichiers sont récupérables dans le
dossier <?php echo $sCodeGenerator->getOutputDir() ?></div>
<h3>Etape 3 : Déclaration dans le fichier de configuration</h3>
<?php $sCodeGenerator->setTemplate('ServiceConfig')->setParams($params)->generateToHtml($configFileName); ?>
<div class="alert alert-warning">
Vous devez vous-même placer ces informations dans le fichier de configuration de votre
module.
</div>
<?php
}