Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

demo.css

  • 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
    }