begin process at 2010 02 10 10:20:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > PAF (PHP / AJAX FRAMEWORK)

PAF (PHP / AJAX FRAMEWORK)


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Classé sous :php ajax, ajax php, framework, javascript Niveau :Expert Date de création :13/03/2009 Date de mise à jour :17/03/2009 02:04:23 Vu / téléchargé :3 426 / 452

Auteur : Arto_8000

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Depuis déjà quelque semaine si ce n'est pas quelques mois, je travaille sur un framework pour AJAX avec PHP, afin de faciliter le développement de site utilisant ces technologies. Le résultat est très intéressant puisque le framework gère énormément d'élément qui peuvent être problématique à gérer côté serveur comme la gestion des différentes commandes qui sont envoyées (si plusieurs modules doivent gérer une même commande ou si un module doit gérer toutes les commandes valides), la gestion des sorties (vos modules peuvent utilisés des technologies différentes comme JSON, XML ou du texte simple pour des commandes différentes sans aucun problème d'entête et d'encodage). Aussi, la structure est très orienté objet, chaque module que vous ajoutez est une classe. Un module peut gérer autant de commande qu'il le désire.

Toute la documentation, ainsi que les exemples d'utilisation sont disponible dans le zip. C'est un des projets que j'ai le plus documenté jusqu'à date. Vous devriez trouver toute l'information que vous cherchez dans la documentation qui fait 8 pages de long.

Source

  • <?php
  • // Classe principale //
  • include_once('../classes/PAFServer.class.php');
  • // Classes de sortie utilisés par les modules //
  • include_once('../classes/PlainTextOutput.class.php');
  • include_once('../classes/XMLOutput.class.php');
  • include_once('../classes/JSONOutput.class.php');
  • // Les modules //
  • include_once('classes/ModuleLog.class.php');
  • include_once('classes/ModuleTest.class.php');
  • include_once('classes/ModuleChangement.class.php');
  • include_once('classes/ModuleChangement2.class.php');
  • PAFServer::getInstance()->start($_GET);
  • ?>
<?php
// Classe principale //
include_once('../classes/PAFServer.class.php');

// Classes de sortie utilisés par les modules //
include_once('../classes/PlainTextOutput.class.php');
include_once('../classes/XMLOutput.class.php');
include_once('../classes/JSONOutput.class.php');

// Les modules //
include_once('classes/ModuleLog.class.php');
include_once('classes/ModuleTest.class.php');
include_once('classes/ModuleChangement.class.php');
include_once('classes/ModuleChangement2.class.php');

PAFServer::getInstance()->start($_GET);
?>

 Conclusion

Ceci est présentement la version RC1 (Release Candidate 1). Le modèle du core est définitif, mais je suis ouvert à toutes modifications à faire pour rendre le framework meilleur.

Compatibilité :

PHP5.1+

Le projet est aussi disponible sur JavascriptFR : http://www.javascriptfr.com/codes/PAF-PHP-AJAX-FRA MEWORK_49493.aspx

À venir, si j'ai le temps je vais faire quelques exemples plus complexe de l'utilisation du framework.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

13 mars 2009 22:16:30 :
Ajout du lien vers Javascriptfr pour le projet.
15 mars 2009 03:52:14 :
- Deuxième démo ajouté (exemple de login utilisant AJAX) - Bogue Fix pour l'escapage côté client des caractères envoyés. - Ajout côté client d'un script pour faciliter le chargement de données à partir d'un formulaire. (Voir la documentation pour les détails)
15 mars 2009 20:36:52 :
Ajout de la modification du DOM à partir de PHP (Voir la documentation pour les détails).
17 mars 2009 02:04:25 :
Validation de formulaires ajouté avec le module FormControl.class.php (Voir la documentation pour les détails)

 Sources du même auteur

Source avec Zip TYPAGE AVEC LES TYPES PRIMITIFS DE PHP
Source avec Zip Source avec une capture PHP CHAT (AVEC PHP5 + PAF)
Source avec Zip Source avec une capture AJAX CHAT V2.0
Source avec Zip RPG POUR IRC
Source avec Zip Source avec une capture CHAT AJAX

 Sources de la même categorie

Source avec Zip POO - LOGGING PACKAGE par Waredan
POO - OBJECT CLASS par Waredan
Source avec Zip POO - FACTORY CLASS par Waredan
POO - SINGLETON CLASS par Waredan
POO - PARAMETERHOLDER CLASS par Waredan

 Sources en rapport avec celle ci

Source avec Zip CRÉATION DE FORMULAIRE SIMPLIFIÉE par Galip
Source avec Zip Source avec une capture LISTER DOSSIER AVEC UN ARBRE / TREE EN PHP / JAVASCRIPT par cyril6789
Source avec Zip MAJAX UN TOOLS (AJAX EN PHP) par michelsto
RAPPEL D'ACTION A FAIRE A INTERVAL RÉGULIER par fabkiller
Source avec Zip CATAPULT FRAMEWORK, VERSION 0.1 : "ORIGIN" par codefalse

Commentaires et avis

Commentaire de Kimjoa le 14/03/2009 00:15:08

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

Commentaire de Arto_8000 le 14/03/2009 01:22:34

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".

Commentaire de Kimjoa le 14/03/2009 02:16:42

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++

Commentaire de Kimjoa le 14/03/2009 02:17:38 10/10

voila , la note !!

Commentaire de stailer le 15/03/2009 13:08:29 7/10

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', '<span> Test </span>');

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...

Commentaire de Arto_8000 le 15/03/2009 20:44:38

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.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

PHP et Javascript [ par romagnoli64 ] Bonjour à tout le monde! J'espère que vous pourrez m'aider!! Voilà mon problème, j'ai un fichier "test.php3", dans lequel une fonction en Javascript e mysql & javascript [ par eax ] bonjour tlm!j'aimerais bien incrémenter une valeur dans une base de données mysql à partir d'un javascriptsi qqun peut me renseignermerci sylvain javascript, float, forcer la précision [ par pcpourtous ] Voial, j'ai un float en javascript, il me renvoi 12, j'aimerais qu'il em renvois 12.00Est-ce possible ?Merci. Romain ereg() en javascript [ par eax ] salut je cherche une fonction en javascript qui fonctionne comme la ereg() en php.mais je connais rien en javascript alors si qqun connait un bon tuto PHP & Javascript [ par BirD ] Y a t-il un moyent de pouvoir utiliser du javascript dans du code PHP, donc pouvoir utiliser les variables définie dans php.Quelqu'un avait déjà mi un Mettre du javascript dans du code PHP [ par BSide ] Bonjour,je ne suis pas du tout familier avec Javascript mais je me rends bien compte que, dans certaines situations, son utilisation ne serait pas du open window javascript dans php [ par deer ] bonjour,je cherche a pouvoir ouvrir des fiches.php en open window depuis le resulat d'une requette.voila la syntaxe qui me permet d'afficher les resul Test de Form en JavaScript puis PHP [ par BSide ] Bonjour,avant d'envoyer des données saisies dans un formulaire vers le serveur, je souhaite effectuer des controles sur certains des champs saisis.--& Refresh sur une partie de la page [ par fcdconnect ] Bonjour,J'aimerai savoir si il est possible (en php ou javascript) de rafraichir uniquement un bout de code et pas la page entiere comme il est possib Javascript & Php ... conditionnel et lancement javascript [ par Cr0w ] Bonjour...J'aimerai lancer les fonction javascript suivant un code ressemblant au suivant... en gros j'aimerais que dans mon conditionnel je lance mes


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales