SlideShare a Scribd company logo

Programmazione Ad Eventi In Php

GrUSP
GrUSP

La tecnica di programmazione ad eventi ormai è diventata sempre più diffusa ed utilizzata in molti linguaggi di programmazione, si vuole quindi analizzare come questo tipo di programmazione viene utilizzata nei diversi linguaggi di programmazione. Poichè php ancora non supporta questo tipo di programmazione si mostrerà come in realtà è molto semplice implementare un oggetto che utilizzi la programmazione ad eventi. Verranno quindi messi in evidenza i vantaggi di questa tecnica in termini di riusabilità del codice scritto. Una volta compreso il meccanismo della programmazione ad eventi verrà presentata una semplice classe per la gestione di una generica coda di messaggi. Una volta presentata la teoria, quindi si vedrà come si possono mettere in pratica queste tecniche apprese, per lo sviluppo di una semplice applicazione web, che utilizzi sia la coda dei messaggi, sia gli eventi.

1 of 14
Download to read offline
Programmazione ad eventi in PHP Implementare in PHP la programmazione ad eventi  Creare e gestire una coda di messaggi Usare gli eventi per scrivere componenti riusabili Gestire una pagina web usando gli eventi Implementare gli eventi e gestire una coda di messaggi
Programmazione ad eventi in PHP Paradigma della programmazione ad eventi ,[object Object],[object Object],[object Object],[object Object]
Programmazione ad eventi in PHP Pattern design per la programmazione ad eventi Observer Pattern
Programmazione ad eventi in PHP Pattern design per la programmazione ad eventi Extended Handlers Pattern
Programmazione ad eventi in PHP Pattern design per la programmazione ad eventi ,[object Object],[object Object],[object Object],[object Object],[object Object]
Programmazione ad eventi in PHP Un gestore di eventi in metalinguaggio while (true) { e = getEvent(); if (isEvent(e)) { handleEvent(e); // La funzione handleEvent chiama l’oggetto  // che si è registrato per processare l’evento. } else { idle(); } }

Recommended

Comunicazione tra procesi Linux
Comunicazione tra procesi LinuxComunicazione tra procesi Linux
Comunicazione tra procesi LinuxMarco Buttolo
 
WordCamp Italia 2021: da zero a PHP
WordCamp Italia 2021: da zero a PHPWordCamp Italia 2021: da zero a PHP
WordCamp Italia 2021: da zero a PHPRodolfo Melogli
 
JAMP DAY 2010 - ROMA (3)
JAMP DAY 2010 - ROMA (3)JAMP DAY 2010 - ROMA (3)
JAMP DAY 2010 - ROMA (3)jampslide
 
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPNetbeans e Xdebug per debugging e profiling di applicazioni PHP
Netbeans e Xdebug per debugging e profiling di applicazioni PHPGiorgio Cefaro
 
Closure Visto Da Vicino
Closure Visto Da VicinoClosure Visto Da Vicino
Closure Visto Da Vicinodavide ficano
 

More Related Content

Similar to Programmazione Ad Eventi In Php

Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Stefano Bianchini
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxGiovanni Cappellini
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con ScalaFranco Lombardo
 
Simple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computingSimple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computingFrancesca1980
 
Programma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceProgramma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceNaLUG
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)jampslide
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni webAndrea Lazzarotto
 
Javascript Camp - Listener Per Eventi
Javascript Camp - Listener Per EventiJavascript Camp - Listener Per Eventi
Javascript Camp - Listener Per EventiSimone Gentili
 
Introduzione al linguaggio PHP
Introduzione al linguaggio PHPIntroduzione al linguaggio PHP
Introduzione al linguaggio PHPextrategy
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPFrancesco Fullone
 
Non Conventional Android Programming (Italiano)
Non Conventional Android Programming (Italiano)Non Conventional Android Programming (Italiano)
Non Conventional Android Programming (Italiano)Davide Cerbo
 

Similar to Programmazione Ad Eventi In Php (20)

Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
 
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e AjaxProgettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax
 
introduzione a symfony 2
introduzione a symfony 2 introduzione a symfony 2
introduzione a symfony 2
 
Html5 e PHP
Html5 e PHPHtml5 e PHP
Html5 e PHP
 
Applicazioni native in java
Applicazioni native in javaApplicazioni native in java
Applicazioni native in java
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con Scala
 
Simple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computingSimple Cloud API: accesso semplificato al cloud computing
Simple Cloud API: accesso semplificato al cloud computing
 
Programma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceProgramma il futuro : una scelta Open Source
Programma il futuro : una scelta Open Source
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 
XPages Tips & Tricks, #dd13
XPages Tips & Tricks, #dd13XPages Tips & Tricks, #dd13
XPages Tips & Tricks, #dd13
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni web
 
Novità di Asp.Net 4.0
Novità di Asp.Net 4.0Novità di Asp.Net 4.0
Novità di Asp.Net 4.0
 
Javascript Camp - Listener Per Eventi
Javascript Camp - Listener Per EventiJavascript Camp - Listener Per Eventi
Javascript Camp - Listener Per Eventi
 
Introduzione al linguaggio PHP
Introduzione al linguaggio PHPIntroduzione al linguaggio PHP
Introduzione al linguaggio PHP
 
Big Data Infrastructures - Hadoop ecosystem, M. E. Piras
Big Data Infrastructures - Hadoop ecosystem, M. E. PirasBig Data Infrastructures - Hadoop ecosystem, M. E. Piras
Big Data Infrastructures - Hadoop ecosystem, M. E. Piras
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Tools & librerie PHP
Tools & librerie PHPTools & librerie PHP
Tools & librerie PHP
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHP
 
Yagwto
YagwtoYagwto
Yagwto
 
Non Conventional Android Programming (Italiano)
Non Conventional Android Programming (Italiano)Non Conventional Android Programming (Italiano)
Non Conventional Android Programming (Italiano)
 

More from GrUSP

REST e Resource Oriented Architectures
REST e Resource Oriented ArchitecturesREST e Resource Oriented Architectures
REST e Resource Oriented ArchitecturesGrUSP
 
Drupal come framework di sviluppo
Drupal come framework di sviluppoDrupal come framework di sviluppo
Drupal come framework di sviluppoGrUSP
 
PayPal e PHP
PayPal e PHPPayPal e PHP
PayPal e PHPGrUSP
 
Zend Server
Zend ServerZend Server
Zend ServerGrUSP
 
Zend Dojo
Zend DojoZend Dojo
Zend DojoGrUSP
 
PHP & IBM i
PHP & IBM iPHP & IBM i
PHP & IBM iGrUSP
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriGrUSP
 
Symfony 2.0
Symfony 2.0Symfony 2.0
Symfony 2.0GrUSP
 
Memi Beltrame Collaborative Design
Memi Beltrame Collaborative DesignMemi Beltrame Collaborative Design
Memi Beltrame Collaborative DesignGrUSP
 
Mocking Objects Practices
Mocking Objects PracticesMocking Objects Practices
Mocking Objects PracticesGrUSP
 

More from GrUSP (10)

REST e Resource Oriented Architectures
REST e Resource Oriented ArchitecturesREST e Resource Oriented Architectures
REST e Resource Oriented Architectures
 
Drupal come framework di sviluppo
Drupal come framework di sviluppoDrupal come framework di sviluppo
Drupal come framework di sviluppo
 
PayPal e PHP
PayPal e PHPPayPal e PHP
PayPal e PHP
 
Zend Server
Zend ServerZend Server
Zend Server
 
Zend Dojo
Zend DojoZend Dojo
Zend Dojo
 
PHP & IBM i
PHP & IBM iPHP & IBM i
PHP & IBM i
 
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatoriJoomla! 1.5: CMS a mani tese verso gli sviluppatori
Joomla! 1.5: CMS a mani tese verso gli sviluppatori
 
Symfony 2.0
Symfony 2.0Symfony 2.0
Symfony 2.0
 
Memi Beltrame Collaborative Design
Memi Beltrame Collaborative DesignMemi Beltrame Collaborative Design
Memi Beltrame Collaborative Design
 
Mocking Objects Practices
Mocking Objects PracticesMocking Objects Practices
Mocking Objects Practices
 

Programmazione Ad Eventi In Php

  • 1. Programmazione ad eventi in PHP Implementare in PHP la programmazione ad eventi Creare e gestire una coda di messaggi Usare gli eventi per scrivere componenti riusabili Gestire una pagina web usando gli eventi Implementare gli eventi e gestire una coda di messaggi
  • 2.
  • 3. Programmazione ad eventi in PHP Pattern design per la programmazione ad eventi Observer Pattern
  • 4. Programmazione ad eventi in PHP Pattern design per la programmazione ad eventi Extended Handlers Pattern
  • 5.
  • 6. Programmazione ad eventi in PHP Un gestore di eventi in metalinguaggio while (true) { e = getEvent(); if (isEvent(e)) { handleEvent(e); // La funzione handleEvent chiama l’oggetto // che si è registrato per processare l’evento. } else { idle(); } }
  • 7.
  • 8. Programmazione ad eventi in PHP Come si programma ad eventi con altri linguaggi public class Publisher { // Declare the delegate (if using non-generic pattern). public delegate void SampleEventHandler(object sender, SampleEventArgs e); // Declare the event. public event SampleEventHandler SampleEvent; // Wrap the event in a protected virtual method // to enable derived classes to raise the event. protected virtual void RaiseSampleEvent() { // Raise the event by using the () operator. SampleEvent(this, new SampleEventArgs("Hello")); } } … c = new Publisher(); c. SampleEvent += new SampleEventHandler (onTestEvent); c.RaiseSampleEvent(); … public static void onTestEvent(){ Console.WriteLine(“Hello World!”); } Esempio di codice in c#
  • 9. Programmazione ad eventi in PHP Come si programma ad eventi con altri linguaggi type TStateChangeEvent = procedure (Sender : TObject; State : TState) of object; TSampleComponent = class(TSecondComponent) private { Private declarations } FOnMyEvent : TNotifyEvent; protected { Protected declarations } public { Public declarations } constructor Create(AOwner : TComponent); override; destructor Destroy; override; procedure MyEvent; override; published { Published declarations } property OnMyEvent : TNotifyEvent read FOnMyEvent write FOnMyEvent; end; … procedure TSampleComponent.MyEvent; begin inherited; //This calls TSecondComponent.MyEvent if Assigned(OnMyEvent) then OnMyEvent(Self); end; … Esempio di codice in Delphi
  • 10. Programmazione ad eventi in PHP Programmare ad oggetti in PHP5 Costruttori e Distruttori ( __construct __destruct ) Visibilita dei membri ( public, private, protected ) Operatore Scope Resolution ( :: ) class SimpleClass {     // member declaration     public $var = 'a default value';     // method declaration     public function displayVar() {         echo $this->var;     } } Esempio di codice in Delphi
  • 11.
  • 12. Programmazione ad eventi in PHP Creare un Dispatcher in PHP function DispachEvent($aEventName,&$aParams = null){ if (is_array($aParams)) { if (method_exists(&$this, $aEventName)) { $result = call_user_func_array(array(&$this, $aEventName),&$aParams); } else if (function_exists($aEventName)) { $result = call_user_func_array($aEventName,&$this,&$aParams); } } else { if (method_exists(&$this, $aEventName)) { $result = call_user_func(array(&$this, $aEventName),&$aParams); } else if (function_exists($aEventName)) { $result = call_user_func($aEventName,&$this,&$aParams); } } return $result; }
  • 13.
  • 14.