Projet

Général

Profil

Actions

Amélioration #4096

fermé

Ajout propriété CLASS - Dépréciation de METHOD

Ajouté par Éric Brison il y a presque 13 ans. Mis à jour il y a presque 13 ans.

Statut:
Intégré
Priorité:
Normal
Assigné à:
Version cible:
Début:
18/06/2013
Echéance:
% réalisé:

100%

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

Ajout TAUFU de contrôle


Description

CLASS

Indique le nom de la classe métier utilisée par la famille.
Ce nom de classe doit être unique parmi l'ensemble des classes PHP utilisées sur le serveur. Il est recommandé d'utiliser un namespace afin d'éviter un conflit de nom.
Si la famille définie n'a pas de parent alors la classe métier doit étendre la classe Dcp\Family\Document. Cette classe est une classe héritant de la classe Doc.
Exemple :
BEGIN Ma première famille MY_FIRST
CLASS My\MyFirstFamily
END
namespace My;
class MyFirstFamily extends \Dcp\Family\Document {
public function myFirstProcedure($x) {
return $x+1;
}
}
Si la classe est utilisée avec une famille héritant d'une autre famille, cette classe doit hériter de la classe générée de la famille parente.
Exemple :
BEGIN IMAGE Photographie MY_PHOTO
CLASS My\MyPhotoFamily
ATTR MYPHO_FR_INFO Informations N N frame 100
ATTR MYPHO_EXIF MYPHO_FR_INFO Exif N N longtext 110
END
namespace My;
class MyPhotoFamily extends \Dcp\Family\Image {
public function postStore() {
$err=parent::postStore();
if (! $err) {
if (! $this->getRawValue(\Dcp\Attribute\Image::img_file)) {
$err=_("my::image needed");
}
if (! $this->getRawValue(\Dcp\Attribute\My\My_Photo::mypho_exif)) {
$err=_("my::no exif detected");
}
}
return $err;
}
}
La classe peut étendre des classes intermédiaires, utiliser des interfaces ou des classes abstraites. La seule contrainte est que la classe générée de la famille parente doit faire partie de la hiérarchie de la classe métier. La classe générée de la famille hérite de cette classe. Elle apporte en plus la définition des attributs définis dans la famille ainsi que le code généré pour les attributs calculés. Le nom de cette classe est \Dcp\Family\<nom de la famille>.
Hiérarchie de classe lorsque la famille MY_PHOTO est intégrée :
namespace \Dcp\CoreFamily {
// classe métier de la famille IMAGE
class Images extends \Dcp\Family\Document {}
}
namespace \Dcp\Family {
// classe générée de la famille IMAGE
class Images extends \Dcp\CoreFamily\Image {}
}
namespace \My {
// classe métier de la famille MY_PHOTO
class MyPhotoFamily extends \Dcp\Family\Image {}
}
namespace \Dcp\Family {
// classe générée de la famille MY_PHOTO
class My_photo extends \My\MyPhotoFamily {}
}
Les attributs des classes sont disponibles sous forme de constantes. Une classe d'attributs est générée lors de l'enregistrement de la famille. Cette classe est nommée avec le nom de la famille dans le namespace \Dcp\Attribute. L'usage des constantes permet de s'assurer de la validité des noms d'attributs. La classe d'attribut donne l'accès aux noms d'attribut de la famille et aussi à ceux de ces parents.
Lors de l'importation de la famille les contraintes suivantes sont vérifiées :
Le fichier PHP de la classe doit être accessible par l'autoloader. Les fichiers de classes sont généralement publiés dans le sous-répertoire de l'application livrée par le module.
Le nom du fichier ne doit pas commencer par Method.
L'extension du fichier doit être PHP.
La classe doit hériter de la classe finale de la famille parente. En cas de famille sans héritage, la classe doit hériter de la classe \Dcp\Family\Document.
La classe ne doit pas être abstraite
L'encodage du fichier doit être utf-8 (incluant l'encodage ascii).
Le fichier PHP doit être syntaxiquement correct.
Le nom de la classe doit être unique parmi l'ensemble des classes PHP utilisées par Dynacase.
La propriété className ne peut pas être utilisée avec la propriété CLASS.

Demandes liées 7 (0 ouverte7 fermées)

Bloque Core - Amélioration #4097: Utilisation de CLASS dans les familles coreIntégré18/06/2013

Actions
Bloque Fileconnector - Amélioration #4098: Remplace des fichiers METHOD pas des fichiers CLASSIntégréNicolas Thing-Leoh18/06/2013

Actions
Bloque Mailconnector - Amélioration #4100: Remplace des fichiers METHOD pas des fichiers CLASSIntégréNicolas Thing-Leoh18/06/2013

Actions
Bloque Network User - Anomalie #4101: Remplace des fichiers METHOD pas des fichiers CLASSIntégréJérôme Augé18/06/2013

Actions
Bloque Thesaurus - Amélioration #4102: Remplace des fichiers METHOD pas des fichiers CLASSIntégréÉric Brison18/06/2013

Actions
Bloque Webdesk - Amélioration #4103: Remplace des fichiers METHOD pas des fichiers CLASSIntégréJérôme Augé18/06/2013

Actions
Bloque Workspace - Amélioration #4104: Remplace des fichiers METHOD pas des fichiers CLASSIntégréJérôme Augé18/06/2013

Actions

Mis à jour par Éric Brison il y a presque 13 ans

  • % réalisé changé de 0 à 90

Mis à jour par Éric Brison il y a presque 13 ans

  • Statut changé de Nouveau à Intégré
  • % réalisé changé de 90 à 100

Appliqué par commit commit:df0af147356613429bb02afd5c220c2c9c133573.

Actions

Formats disponibles : Atom PDF