Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Alessandro Pellizzari Newsgroups: it.comp.www.php Subject: Re: estendere le classi con gli eventi Date: Mon, 29 Feb 2016 10:59:49 +0000 Lines: 34 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net r+sn8Pah0Yey+V7d7PZcvQYzylfa7Vtl3uVliyBk30T3msAFQ= Cancel-Lock: sha1:juFItFAFKilzJz68ZoNm39SSGug= User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 In-Reply-To: Xref: csiph.com it.comp.www.php:20425 On 27/02/2016 07:42, alex wrote: > Ok però a parte tutto, gli eventi li vedo utili solo per > implementare plugin, o l'ereditarietà multipla. O ci possono > essere altre utilità? L'ereditarietà multipla è forse l'ultima cosa a cui penso, riguardo l'event dispatching. Per plugin dipende cosa intendi, perchè vuol dire tutto e niente. Un sistema ad eventi può essere utile, per esempio, per attaccare un logger o un profiler a un package, o in generale per lanciare elaborazioni parallele e trasparenti al normale flusso del programma, e per disaccoppiare i componenti. Esempio stupido: un sistema di upload di immagini lancia un evento "uploaded" appena finito l'upload, e poi se ne frega se dietro non c'è niente o se magari c'è un task (anche accodato in gearman o simile) che prende quell'immagine e fa resize e cropping in 10-15 versioni diverse, magari salvando i dati in S3, o andando ad aggiornare il sistema di mailing in modo che alla prossima newsletter l'immagine venga inclusa, o che incrementi un contatore che manda una mail all'utente per dirgli quanti upload gli rimangono quel mese, o che posti l'immagine su twitter, ecc. Ecco, alcuni (o tutti, dipende da come la vedi) li puoi considerare plugin, ma li puoi anche considerare microservices, componenti, servizi accessori, ecc. Bye.