PROGRAMMATION ÉVÉNEMENTIELLE EN PHP ...

cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 - 15 févr. 2007 à 02:57
spottydj Messages postés 13 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 13 juillet 2008 - 13 juil. 2008 à 14:28
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/41477-programmation-evenementielle-en-php

spottydj Messages postés 13 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 13 juillet 2008
13 juil. 2008 à 14:28
Non car ces évènements sont des interactions avec le client (le navigateur). D'ailleurs, on ne parle pas ici d'évènements tout fait, mais de la création d'évènements.
Il n'est pas possible d'intercepter un évènement client via le code PHP uniquement.
cs_mouradinfo Messages postés 3 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 13 juillet 2008
13 juil. 2008 à 10:19
bon jour,
as que il y a comme : onclick(),onchange(),onmosumove()...............ect.
spottydj Messages postés 13 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 13 juillet 2008
4 avril 2007 à 18:14
Pour ceux qui disent qu'on peut pas parler vraiment d'evenementiel, je leu dis que l'evenementiel ne s'arrête pas a l'interaction client/serveur ou utilisateur/programme, mais c'est bien la réaction du programme à un évenement (ici la voiture dépasse la limite).

Donc OUI, programmation evenementielle avec PHP ^^

et Merci pour ce bout de code sympa !
dwarft Messages postés 8 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 5 décembre 2007
19 févr. 2007 à 17:17
Ton code est vraiment sympa.
Cela ressemble beaucoup au design pattern d'état. L'idée est vraiment à creuser.
coooooool
guill76 Messages postés 193 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 3 juin 2016
18 févr. 2007 à 14:14
Au fait c'est de la pub pour porsche.:)
En plus t'as oublié le contôle d'identité ,et si le conducteur s'appelle sarko, il faut le relacher.:-)
guill76 Messages postés 193 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 3 juin 2016
18 févr. 2007 à 14:07
Salut, ce concept existe déjà dans certains frameworks php il suffit de regarder prado.
Mais bon ça oblige à consacrer 1 à 2 heure de temps pour en comprendre les mécanismes, alors qu'ici c'est quand même moins dense et c'est plutôt clair.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
16 févr. 2007 à 16:32
De toute facon, il te faut une classe abstraite pour y mettre le __call() et que toutes tes classes filles héritent derrière.

:)
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
16 févr. 2007 à 12:23
@ Dominion... ajax n'a rien à voir dans ce cas... ici il sagit d'évènementiel interne à php et non pas d'interaction client/serveur... d'ailleurs étant interne à php peut on réellement parler d'évènementielle... quoi qu'il en soit bonne idée... .. . ;o)

@ tchaOo°
cs_dominion Messages postés 230 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 15 mai 2008
16 févr. 2007 à 00:09
LocalStone << AJAX, je le redis, pour les interactions client-serveur en PHP. Néanmoins c'est vrai que du coup, l'évènementiel se retrouve plus au niveau du JavaScript...
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
15 févr. 2007 à 22:29
Oups ... Désolé ...
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
15 févr. 2007 à 21:15
Sympa comme exemple ^^

Par contre c'est Porsche et non Porche lol
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
15 févr. 2007 à 18:20
Ceci étant, les Events via exception ne marche pas si on compte faire plusieurs Events de suite :)

Dans ce cas la, il faut bien se faire une classe d'Event qu'on doit instancier à chaque fois :s
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
15 févr. 2007 à 18:06
Je sais que c'est une erreur :)

Mais l'erreur d'origine ne serait elle pas de dire qu'on utilise PHP évenementiellement alors que ca n'est pas vrai ?
L'évenementielle, c'est intéragir avec l'utilisateur. Hors PHP ne peut pas intéragir avec un client.
"L'évenement" que tu envoies, je peux l'envoyer via une exception. On peut appeler ca du throwing.
Ce que tu envoies, tu veux le récupérer... appelons ca du catching.

C'est ce que fait les exceptions. Alors oui, tu vas me dire, exceptions c'est pas fait pour ca :p Mais si je faisais :

class Event extends Exception {
public function __construct(.....);
}

throw new Event('.....'), ..., ... , ...);

et puis :

try {
..
..
} catch (Event $e) {
//
}


C'est pas pareil à ton avis ? ;)
Et tu n'y auras vu que du feu :p

Voila mon point de vue :p
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
15 févr. 2007 à 17:49
Oula oula ... Oui, c'est vrai que l'on peut avoir un comportement identique, mais c'est vraiment une énorme faute de méthodologie d'utiliser ta méthode (sauf ton respect bien sûr ^^). Bah oui, les exceptions, c'est totalement différent des évenements. Générer une exception dans un script permet d'éviter certain bugs en l'attrapant et en faisant l'action appropriée pour éventuellement pouvoir l'éviter et faire que le script continu son déroulement normal.
Mais néanmoins, c'est vrai que c'est joli avec les exceptions ...
++ !
L.S.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
15 févr. 2007 à 16:25
La même chose peut être fait avec les exceptions pour pas grand chose niveau modification :)

try {
$john = new PoliceOfficier('3845-5214');
$porche = new Car('Porche');
$porche -> start();
$porche -> accelerate(10); // faut lui dire de combien tu veux monter ta vitesse au passage :)
// etc...
} catch (VitesseException $v) {
echo 'Tu es allé trop vite. Ta vitesse actuelle a été intercepté par '.$v->OfficerName().' à la vitesse de '.$v->FlashedSpeed().'.';
}

Il suffit d'étendre les exceptions et de faire mumuse avec ca :)
Ca marche presque pareil, à ceci près que tu as des tests en moins.

Mais pas mal :)
Epoc22 Messages postés 198 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 14 novembre 2008 1
15 févr. 2007 à 13:01
Je capte rien à quoi ça sert.
cs_dominion Messages postés 230 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 15 mai 2008
15 févr. 2007 à 11:47
je sais pas si ça t'intéresse mais, si tu veux faire de l'évènemenciel PHP sur ta page (en client side donc), tu peux aussi jeter un oeil sur AJAX dans google...
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
15 févr. 2007 à 10:52
Bah merci pour vos commentaires ... Et ce 10/10 est sympa aussi :D ! Je suis en cours, mais je vais essayer de commenter le code dès que j'aurais un peu de temps.
L.S.
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
15 févr. 2007 à 09:31
Je trouve le concept intéressant, c'est du joli travail :-)
ejbye7 Messages postés 9 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 15 février 2007
15 févr. 2007 à 08:58
Rôôô, c'est Bôôô...
Mais ça me rappelle de mauvais souvenirs...
Une remarque: rajoute quelques commentaires.
Merci en tout cas.
@+
EJ
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
15 févr. 2007 à 02:57
tu n'as pas à rougir de l'exemple policier-voiture
Rejoignez-nous