Présentation
CopixAJAX définit des méthodes statiques permettant de faciliter la programmation AJAX avec Copix.
Déterminer si on traite une requête AJAX
Cela peut être fait facilement avec CopixAJAX::isAJAXRequest().
boolean CopixAJAX::isAJAXRequest()
Retourne true si l'on est dans le traitement d'une requête AJAX.
Gestion de sessions AJAX
CopixAJAX introduit un nouveau concept : les sessions AJAX.
L'idée est de partager des données entre les différents appels AJAX d'une même page, tout en évitant les conflits entre plusieurs versions de la page (dans des onglets différents du navigateur par exemple).
Lors de la génération initiale d'une page (i.e. requête non-AJAX), un identifiant de session AJAX (mais pas encore la session elle-même) est généré pour la page. Toutes les requêtes AJAX qui seront effectuées par cette page communiquerons ce même identifiant à Copix.
Dès lors que l'on fait appel à la méthode CopixAJAX::getSession(), la session AJAX est créée au sein de la session PHP classique. Par la suite, les données seront accessibles uniquement avec ce même identifiant.
Le système inclut un "garbage collector" pour supprimer les sessions obsolètes.
A noter : une session AJAX différente étant créée à chaque génération d'une page, un rechargement réinitialise la session AJAX.
Méthodes
CopixAJAX::getSessionId
string CopixAJAX::getSessionId()
Renvoie un identifiant de session AJAX : soit l'identifiant en cours, soit un identifiant tout neuf.
CopixAJAX::getSession
CopixAJAXSession CopixAJAX::getSession()
Crée, ou récupère, la session AJAX de la page.
L'utilisation de cette méthode implique l'utilisation du framework Javascript.
Pour l'utilisation de CopixAJAXSession, je vous invite à consulter la PHPDoc.
Exemple
L'utilisation au niveau PHP est très simple :
<?php class ActionGroupExemple extends CopixActionGroup { public function processStartPage() { // Initialise la session AJAX de la page. $sessionAJAX = CopixAJAX::getSession(); // Assigne une valeur $sessionAJAX->maValeur = 5; // N.B: on pourrait aussi écrire : CopixAJAX::getSession()->set('maValeur', 5); } public function processActionAJAX() { // Récupère la session AJAX $sessionAJAX = CopixAJAX::getSession(); // Récupère la valeur $maValeur = $sessionAJAX->maValeur; // N.B: on pourrait aussi écrire : maValeur = CopixAJAX::getSession()->get('maValeur'); } } ?>
L'utilisation de cette méthode implique le chargement du framework AJAX.
