PAF (PHP / AJAX FRAMEWORK)

cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014 - 14 mars 2009 à 00:15
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 - 15 mars 2009 à 20:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49492-paf-php-ajax-framework

Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
15 mars 2009 à 20:44
J'ai rajouté le support pour la modification du DOM à partir de PHP. Pour le reste, je vais regarder Xajax et les autres framework que tu m'as parlé.

Merci de commentaire.
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
15 mars 2009 à 13:08
Simple et efficace, en effet ce code fonctionne bien. Ca me fait penser un peu à ce que j'utilise régulièrement : Xajax. Mais bien sur ce dernier est plus poussé (tu devrais jeter un oeil pour t'en inspirer dans tes versions futures).

Par contre je ne pense pas que cette source soit accès pour de gros projets. Au contraire, si on veut faire une petite appli web sans un gros script tel Xajax & co mais que l'on veut tout de même de l'objet et de la propreté côté javascript/php alors cette source est intéressante.

Pour une grosse appli, il faut aussi prendre en compte des frameworks tel Prototype ou ExtJS côté client et un framework côté serveur tel Zend Framework ou Symfony implémentant le MVC et les contextes (contexte ajax, contexte json...etc).

Exemple simpliste ExtJS et mon propre framework :
Ext.Ajax.request({url:'http://monappli/controller/action',success: fonctionOk});

Avec prototype c'était à peu près la même chose, donc pas besoin de ta source.

En fait ta source ou Xajax n'interviennent uniquement que dans 2 cas :

- Pas de moteur de templates
ou
- Pas de motif type MVC côté serveur

Donc nous avons besoin de générer du HTML dynamiquement par PHP, auquel cas Xajax donne ce genre de code (encore trèèèèès simpliste par rapport aux possibilités de ce dernier) :

$reponseXajax->assign('monDiv', 'innerHTML', ' Test ');

J'ai intégré Xajax dans mon propre framework et finalement je le regrette un peu... Etant donné que j'ai intégré Smarty pour la partie "Vue", Prototype m'aurait largement suffit pour le web.
Et dans mes actions appelées par ajax j'aurais demandé à Smarty de me construire mon résultat, j'aurais donc toujours gardé la séparation des couches.
Enfin bon, Xajax propose tout de même d'autres trucs intéressants, donc c'est pas trop grave ; ) .

Pour info, je développe une appli en ce moment "Full Ajax" avec ExtJS et Zend Framework. Mes codes d'appels sont encore plus simples qu'avec ton script et les possibilités beaucoup plus grandes (gestion des proxy par exemple, validation automatique de formulaire selon paramétrage... etc).

Pour finir : Arto_800 tu as fait une bonne source et pour moi son avenir réside dans ses possibilités à générer du code HTML et l'injecter très précisément par DOM à l'instar de Xajax.

A+

ps : ceci est ma vision personnelle, notamment basé sur des choix pris à un moment donné. Il y a d'autres possibilités de faire de l'ajax simplement...
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
14 mars 2009 à 02:17
voila , la note !!
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
14 mars 2009 à 02:16
ok je comprend mieux !! merci , mais c'est vrai que c'est fait d'abord pour des gros projets , je fais un petit cms en ajax pour mes propres besoins, et ton code me serait très utile, vais réfléchir à comment l'intégrer... mais sinon, c'est quand même un script très intéressant , il en existe t-il d'autre avec le même fonctionnement sur d'autre langage ?? en faite je suis même étonné que personne n'est rien posté de t-elle avant ... pense que ton script à bcp d'avenir , j'ai pas l'habitude de noter sur phpcs (noob :) )mais je pense pas me tromper ...

a++
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
14 mars 2009 à 01:22
Exemple 1 :

Dans le cas où tu veux faire un module qui log toutes les entrées qui sont faites avec le framework (comme l'exemple du module "ModuleLog" dans la démo). Tu te retrouves nécessairement pour chaque commande avec le module de log et celui qui gère la commande comme tel qui doivent être appelés.

Exemple 2 :

Supposons que tu fais un chat ajax et que tu as un module qui gère le login et un module qui gère les ban. Quand un utilisateur envoie la commande "je veux entrer", le module qui gère les ban doit savoir qui essaie de rentrer et repousser ceux qui ont été banni, et le module qui gère le login doit faire le login quand quelqu'un le demande.

Au départ, le code côté serveur servait pour un serveur de chat et moindrement que tu veux faire des services qui écoutent sur des commandes qui sont déjà géré ce genre de système est absolument nécessaire.

Je suis aussi venu à la conclusion que dans de tel cas il peut aussi avoir des conflits. Pour cela j'ai ajouté la possibilité qu'il y ait des communications entre les modules (tel que décrit dans la documentation). Quand tout le monde se parle les conflits possibles sont beaucoup réduit.

Dans la plupart des petits projets ce genre de système n'est pas nécessaire, mais j'ai voulu amené quelque chose de plus poussé que juste quelque chose de base qui ne fait que des "Hello World".
cs_Kimjoa Messages postés 262 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 19 septembre 2014
14 mars 2009 à 00:15
ouhaou , ca l'aire géniale , si j'ai bien compris ton script sert à organiser des commande entre différents module transmit par une requête ajax ?
Maintenant faut trouver une utilisation concrète et j'arrive pas à trouver...enfin dans le cas ou une commande est éxecuter par plusieur modules, je vois pas quels module ça pourrait ètre ?
Sinon c'est très bien codée et très bien documenté, bravo !! a default de l'utiliser (a moin de me donner un example de multi-commande ;)), c'est sur je te piquerait des bouts de code, notamment les output xml et json ...

bye