Skip to content
Snippets Groups Projects
Select Git revision
  • 8c74d220ae90512de4265b44b066e365b654043f
  • master default protected
  • 5.x
  • ll-php8-bs5
  • release_5_bs5
  • ll-php8
  • 4.x
  • laminas_migration
  • release_1.0.0.2
  • release_4.0.0
  • release_3.2.8
  • bootstrap4_migration
  • 1.0.0.3
  • 6.0.7
  • 6.0.6
  • 6.0.5
  • 6.0.4
  • 6.0.3
  • 6.0.2
  • 6.0.1
  • 5.1.1
  • 6.0.0
  • 5.1.0
  • 5.0.0
  • 4.0.2
  • 3.2.11
  • 4.0.1
  • 3.2.10
  • 4.0.0
  • 1.0.0.2
  • 3.2.9
  • 3.2.8
32 results

autoload_classmap.php

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
    }