Pages dynamiques

Les dépendances

Dans le cadre du framework Adventy, il existe une mince frontière entre une page dynamique et une page statique. En effet, comme nous l'avons vu précédemment, il est possible de générer du HTML, CSS et Javascript dans une page statique avec le langage PHP. De ce fait, nous pouvons considérer déjà cela comme étant une page dynamique. Cependant, s'il y a génération ou inclusion de données et de contenus statiques, le tout restera au final toujours du contenu statique. C'est cet état recherché qui nous permettra de jouer sur la durée plus ou moins longue du cache, ce qui n'est absolument pas le cas pour un vrai contenu dynamique avec des données qui changent constamment provenant d'une base de données par exemple.

Une page dynamique a les même dépendances qu'une page statique, ce qui signifie que vous pouvez reprendre exactement la même procédure de création de page. Mais ajouté à cela, quelques propriétés meta de page devront changer, et la notion de traitement métier va faire son apparition...

Les propriétés meta de la page

Rappelons que les fichiers *.meta.php sont définis dans le dossier technique /application/meta.

Les propriétés spécifiques à la page dynamique sont :

  1. static : toujours à false pour une page dynamique ;
  2. expiry : désigne la durée en seconde du cache côté serveur. A l'expiration, le cache (2 fichiers au format deflate et texte) est tout simplement supprimé pour être remplacé par un nouveau. Pour cela, un planificateur de tâche doit être mis en place. Par défaut, la valeur de expiry est mise à 0 indiquant qu'il n'y a aucun cache du côté serveur ;
  3. cache : cette propriété correspond à la durée en seconde du cache côté client. Si la valeur est à 0 ou le cache est expiré, alors le navigateur va effectuer une requête au serveur pour télécharger la ressource. Dans le cas contraire, il va récupérer la ressource dans son historique. Par défaut, cette propriété est à 0, donc aucun cache n'est sauvegardé du côté client afin que ce dernier récupère toujours la version actualisée du contenu depuis le serveur.

Pour la procédure de création du fichier meta, veuillez consulter la Création des propriétés meta de page.

La couche modèle métier

Ce qui fait la différence entre une page statique et une page dynamique, c'est qu'une page dynamique utilise la couche métier pour exécuter un traitement.

La couche métier désigne la partie de ce que la page est sensée faire avant d'afficher le résultat dans la vue (View dans le modèle MVC). Cela revient aussi à dire que c'est le traitement principal dans lequel y sont définies toutes les règles métiers.

Le framework Adventy a automatisé la couche contrôleur (Controller), et l'a remplacée par la couche métier, qui utilise ce que l'on appelle les objets métiers (Business Object ou BO).

Un objet métier (BO) est tout simplement une instance d'une classe métier. Avec le framework Adventy, cela peut être assimilé à un contrôleur, mais seulement pour en faciliter la compréhension. Attention ! Ce n'est absolument pas un contrôleur. Donc, au lieu d'avoir class MyClassController, nous aurons class MyClassBo. Le suffixe Controller est remplacé par Bo dans le nom de la classe. Ensuite, le suffixe des méthodes d'action reste le même, soit par exemple public function myMethodAction afin de ne pas dérouter les habitués des frameworks MVC.

Le BO sera expliqué plus en détail dans les Modèles métiers. En attendant, gardez à l'esprit qu'il se créé et s'utilise comme un contrôleur (amélioré), et cela nous amènera à voir aussi les DAO (Data Access Object) et l'AOP (Aspect-Oriented Programming).