Projet

Général

Profil

Actions

Amélioration #5353

ouvert

[Class/Method/Famille] Le code généré radote

Ajouté par Charles Bonnissent il y a environ 11 ans. Mis à jour il y a environ 11 ans.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
09/02/2015
Echéance:
% réalisé:

0%

Temps estimé:
Version source:
Solution proposée:
Principaux fichiers impactés:
Wiki Détail:
Contrôle:

Description

Le code généré par Dynacase est très redondant, on peut trouver ce pattern :

  $oAttr="<attributeName>";
       $callMethod="::getLastTitle(<attributeName>,' )";
  $ca=$this->getAttribute($oAttr);
  if (! $ca) throw new Dcp\Exception(ErrorCode::getError('ATTR1212',$callMethod, $this->fromname));
  if ($ca->inArray()) {
      $this->completeArrayRow($ca->fieldSet->id);
      $t=$this->getMultipleRawValues($oAttr);
      foreach ($t as $k=>$v) {
          $err.=$this->setValue($oAttr, $this->applyMethod($callMethod,'',$k),$k);
      }
  } else {
    $err.=$this->setValue($oAttr, $this->applyMethod($callMethod));
  }

répété des dizaines de fois, ce qui alourdit le parsing de la classe et la rend difficilement lisible. Deux choix :

  • soit une closure exprimée en début de code généré et appelée en locale,
  • soit l'ajout d'une fonction pour réaliser cette tâche directement dans la classe doc.

La seconde méthode est probablement meilleure car elle permet à un développeur tiers de faire "comme" le code généré.

Attention a proprement indenter le code généré (plus facile à lire en cas de problème).


Demandes liées 1 (0 ouverte1 fermée)

Lié à Core - Anomalie #5344: [Interface/I/Attribut Calculé] Les attributs invisibles affichent des messages d'erreur si ils sont calculésIntégréJérôme Augé05/02/2015

Actions
Actions

Formats disponibles : Atom PDF