Bien que peu pratiqué par les consultants Planisware, le langage interne de l’application (OJS) permet de développer en utilisant une logique objet. Malgré l’utilisation du Javascript comme base du langage OJS, les méthodes traditionnellement utilisées pour déclarer des classes et des méthodes n’ont pas été implémentée de la même façon.
Ainsi pour définir une nouvelle classe, il faudra commencer par déclarer cette classe sous forme de fonction.
function Personne(nom, prenom) {
this.nom = nom;
this.prenom = prenom;
}
Une fois fait, vous pouvez ajouter de nouvelles méthodes à cette classe en utilisant les instructions method [Nom de la méthode] on [Nom de la classe]([Arguments])
method setNom on Personne(nom) {
this.nom = nom;
}
Pour déclarer un objet de type Personne :
var raphael = new Personne("gloupss", "Raphael");
raphael.setNom("Gloups");
La programmation orientée objet dans Planisware vous permet de mieux structurer vos développements mais aussi d’éviter le risque de redéfinir des fonctions existantes en utilisant le même nom. Pour ma part, la première classe que j’ai développé en utilisant ce concept, est un gestionnaire de log permettant de tracer les différents niveaux d’alerte et permettant de débugger plus facilement les scripts OJS.
Logger.debug("Affecte la valeur SRD: " + srd);
Comme vous l’avez peut-être remarqué, on peut très facilement enrichir des classes existantes. Par exemple, ces quelques lignes permettent d’ajouter une méthode contains() à la classe String pour vérifier si une chaîne de caractères contient une sous-chaîne.
method contains on String(substring) {
this.test("*" + substring + "*");
}
alert("ma chaine".contains("ma")); //return true