Skip to content
Snippets Groups Projects
Select Git revision
  • ab9fcc18e8ce3081cc53b6cb03b07bf6823f72d6
  • master default protected
  • ll-workflow
  • b24
  • alc-scindage-donnees-pj
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • b22
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
  • 24.0-beta12
  • 24.0-beta11
41 results

NewEntityService.php

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