Fondamentaux du logiciel

Une architecture MVC

Novius OS répond aux standards de découpage Modèle-Vue-Contrôleur, qui définissent des logiques de travail :

  • dans la conception des applications ;
  • dans l’organisation d’un projet sous Novius OS.

Utilisation de frameworks

L’utilisation de frameworks oriente fortement la conception et l’implémentation des applications. Il convient donc de connaitre le rôle de chacun. Pour autant, cette documentation concernant Novius OS avant tout, veuillez vous référer à de la documentation ou tutoriaux externes pour plus de précisions sur ces frameworks.

FuelPHP

Consulter les tutoriaux FuelPHP par Novius

Le framework PHP utilisé pour Novius OS est FuelPHP.

Les éléments de FuelPHP les plus utilisés sont ceux qui permettent de valider les données, l’ORM et le mapping des différents fichiers. Au delà de ces éléments, des outils inclus dans le framework simplifient grandement l’implémentation des applications (comme la classe Arr par exemple).

ORM de FuelPHP

ORM pour object-relational mapping. En français mapping objet-relationnel.

L’ORM permet une gestion de la base de données par des objets PHP, des classes, et en gérant notamment les relations entre les tables.
Des exemples parlent plus qu’un long discours :
$new_monkey = Model_Monkey::forge();
$new_monkey->monk_name = 'Julian';
$new_monkey->save();

$monkeys = Model_Monkey::find('all');
foreach ($monkeys as $monkey) {
        //...
}

$monkey = Model_Monkey::find(4);
$monkey->delete();

Novius OS est basé sur l’ORM de FuelPHP. Veuillez vous référer à sa documentation.

Néanmoins, Novius OS ajoute une sur-couche notable à l’ORM : les Behaviours.
En français, Behaviour veut dire comportement. Les Behaviours permettent d’étendre des Model en y ajoutant des comportements standardisés.

Ils sont similaires aux Observers de FuelPHP mais plus puissants :

  • Comme les Observers, ils sont configurables par des options.
  • Comme les Observers, ils peuvent intercepter des événements pour agir sur le Model (par exemple l’événement before_save se déclenchant avant la sauvegarde).
  • En plus, ils fournissent aussi des méthodes, d’instance ou statiques, sur le Model.
  • Ils peuvent également fournir de nouveaux événements.

jQuery UI / Wijmo

Bien que les actions logiques soient effectuées en PHP côté serveur, Novius OS est en majorité écrit en Javascript. Cela s’explique par la grande importance donnée à l’interface utilisateur et à l’ergonomie (cf. Principes ergonomiques).

Pour proposer des interfaces et interactions riches, Novius OS utilise plusieurs librairies JS :

jQuery
Ce framework facilite l’écriture du code JS pour l’édition du contenu HTML. Il n’est pas directement orienté UI.
jQuery UI
Ce complément de jQuery permet d’ajouter des éléments d’interface. Une majorité de l’UI de Novius OS est issue de cette librairie.
Wijmo
Cette librairie est basée sur jQuery UI et fournit des éléments d’interface complémentaires, appelés widgets.

Il y a une hiérarchie entre ces librairies, Wijmo est la plus impactante sur l’ergonomie de Novius OS.