Skip to content
Snippets Groups Projects
Select Git revision
  • 576531eb98be151d5626c4786d89a03584e54211
  • master default protected
  • update-2.0.0-dev
  • alc-refactoring-entity
  • sb-comments-update
  • alc-dev
  • 2.0.2
  • 2.0.1
  • 2.0.0
  • 1.0.7
  • 1.0.6
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 0.1.5
  • 1.0.0
  • 0.1.4
  • 0.1.3
  • 0.1.2
  • 0.1.1
  • 0.0.15
  • 0.0.14
  • 0.0.13
  • 0.0.12
26 results

commands.md

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    NewOseForm.php 2.78 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 formulaire OSE (hérité d'AbstractForm)</h1>
        <h3>Etape 1 : Paramétrage</h3>
    
    <?php
    
    $form = new \Zend\Form\Form();
    $form->add(ElementMaker::selectModule(
        'module', 'Module dans lequel sera placé votre formulaire'
    ));
    $form->add(ElementMaker::text(
        'classname', 'Nom de classe du formulaire (en CamelCase, avec éventuellement un namespace avant : MonNamespace\Exemple)', 'Exemple'
    ));
    $form->add(ElementMaker::checkbox(
        'useHydrator', 'Implémenter un hydrateur spécifique'
    ));
    $form->add(ElementMaker::submit('generate', 'Générer le formulaire'));
    $form->setData($controller->getRequest()->getPost());
    
    Util::displayForm($form);
    
    if ($controller->getRequest()->isPost() && $form->isValid()) {
    
        $module            = $form->get('module')->getValue();
        $useHydrator       = $form->get('useHydrator')->getValue();
        $classname         = $form->get('classname')->getValue();
        $name              = str_replace('\\', '', $classname);
        $targetFullClass   = $module . '\\Form\\' . $classname . 'Form';
    
        $sCodeGenerator = $controller->getServiceLocator()->get('UnicaenCode\CodeGenerator');
        /* @var $sCodeGenerator \UnicaenCode\Service\CodeGenerator */
    
        $params = $sCodeGenerator->generateFormParams($targetFullClass, 'Form', $name, $module, $useHydrator);
    
        $params['useSubForm'] = false !== strpos($classname,'\\');
        $configFileName       = 'module.config.php';
    
        ?>
    
        <h3>Etape 2 : Création des fichiers sources du formulaire</h3>
        <?php
        $sCodeGenerator->setTemplate('OseForm')->setParams($params)->generateToHtml($params['fileName'])->generateToFile($params['fileName']);
    
        $p = $sCodeGenerator->generateFormTraitParams($targetFullClass, $name, $module . '\Form');
        $sCodeGenerator->setTemplate('FormAwareTrait')->setParams($p)->generateToHtml($p['fileName'])->generateToFile($p['fileName']);
    
        $p = $sCodeGenerator->generateFormInterfaceParams($targetFullClass, $name, $module . '\Form');
        $sCodeGenerator->setTemplate('FormAwareInterface')->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('FormConfig')->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
    }