Language and development rules: Difference between revisions

Jump to navigation Jump to search
Line 239: Line 239:
{{ToTranslate}}
{{ToTranslate}}


Il existe 3 modes de liaisons:
There is 3 way to make links:
* Le '''Table And Row Data Gateway'''
* The '''Table And Row Data Gateway'''
C'est le plus simple. On crée une table par classe et chaque classe est un pont avec la table correspondante, voir une classe par ligne de table. Une instance de classe étant alors un enregistrement de la table. La classe ne contient que du code d'accès aux lignes ou colonnes de tables.
This is the most simple. You have one class per table and each class is a link to the table with CRUD methods (Ceate, Read, Update, Delete). A class instance is a record a the table. The class contains only code to reache lines and fields of table.


Exemple: C'est le mode mis en oeuvre quand on utilise certains Frameworks d'ORM comme '''iBatis''' (http://ibatis.apache.org/).
Example: This mode is used by some ORM Frameworks, like '''iBatis''' (http://ibatis.apache.org/).


* Le '''Active Record'''
* The '''Active Record'''
Identique au précédent, mais on se permet d'ajouter quelques fonctions métiers sur la classe, à conditions que ces fonctions soient propres à la table ou à l'enregistrement.
Same than previous, but we are allowed to add some business functions into the class, if such functions are dedicated to the table or recordng into this table.


Exemple: C'est le mode choisi pour les développements Dolibarr et de nombreuses autres applications PHP qui ont leur propre framework et pratiques de développements.
Example: This mode is used for Dolibarr development and most PHP softwares that includes their own framework and best practices.


* Le '''Data Mapper'''
* The '''Data Mapper'''
Les classes représentent les entités du problème et non les données. Il faut donc doubler, tripler... ces classes avec des classes Mapper pour accéder aux données.
Les classes représentent les entités du problème et non les données. Il faut donc doubler, tripler... ces classes avec des classes Mapper pour accéder aux données.
Plus "puriste" sur le papier car plus proche du métier, ce mode a aussi l'inconvénient d'être plus complexe sur le plan pratique.
Plus "puriste" sur le papier car plus proche du métier, ce mode a aussi l'inconvénient d'être plus complexe sur le plan pratique.

Navigation menu