Slide 1

Slide 1 text

Zend Framework ed i Web Service Introduzione a Zend Framework e componen4 per i web service Simone Carle; [email protected] www.simonecarle;.com phpDay 2008 Rimini, 23/24 Maggio 2008

Slide 2

Slide 2 text

Due parole di presentazione •  Technical Manager in Altura Labs Srl (www.alturalabs.com) •  Zend Framework contributor (weppos) •  Membro dell’RSS Advisory Board (www.rssboard.org) •  Autore per HTML.it –  Edit –  PHP, Ruby, ASP, XML, WebMarke4ng, Database, Server –  ICTv.it •  Autore Zend Framework IT (www.zend‐framework.it) 23 Maggio 2008 phpDay 2008 - Simone Carletti 2

Slide 3

Slide 3 text

Contenuti •  Introduzione ai framework •  Introduzione a Zend Framework e caraXeris4che •  Zend Framework ed i Web Service 1.  Client per web service 2.  Componen4 per sfruXare i web service 3.  Componen4 per sviluppare i web service 4.  Componen4 a supporto 23 Maggio 2008 phpDay 2008 - Simone Carletti 3

Slide 4

Slide 4 text

Note per gli Esempi •  Per ques4oni di leggibilità, questa presentazione riporta solo frammenB degli script realizzaB come esempio •  Gli script sono disponibili in un paccheXo chiamato phpday2008.tgz, scaricabile dal mio sito o dal sito www.phpDay.it •  Leggere il file README contenuto all’ìnterno del paccheXo prima di procedere. Il significato di ogni script è riportato in breve in questa presentazione, alla voce Esempi: che segue un componente •  Non trovi il file phpday2008.tgz? Scrivimi a [email protected] ! 23 Maggio 2008 phpDay 2008 - Simone Carletti 4

Slide 5

Slide 5 text

I framework •  Che cos’è un framework? –  Collezione di librerie –  Raccolta di strumen4 •  Perchè un framework? –  Aumento della produ;vità –  Soluzioni già pronte ai problemi comuni –  Manutenzione del socware –  Uniformità e standard –  Lo sviluppo è più divertente! 23 Maggio 2008 phpDay 2008 - Simone Carletti 5

Slide 6

Slide 6 text

Chi non usa un framework si riconosce subito! 23 Maggio 2008 phpDay 2008 - Simone Carletti 6

Slide 7

Slide 7 text

Zend Framework •  Web Framework Open Source (Licenza New BSD) •  ScriXo in PHP 5 Object Oriented (PHP 5.1.4) •  Promosso da Zend Technologies •  Oltre 100 contributors a;vi •  hXp://framework.zend.com/ •  www.zend‐framework.it (non ufficiale) 23 Maggio 2008 phpDay 2008 - Simone Carletti 7

Slide 8

Slide 8 text

Elementi Zend Framework •  Model‐View‐Controller (MVC) –  Zend_Controller, Zend_View, Zend_Layout, Zend_Form… •  Database –  Zend_Db, Zend_Db_Table •  Internazionalizzazione (i18n) e Localizzazione (l10n) –  Zend_Date, Zend_Locale, Zend_Measure, Zend_Translate •  Auten4cazione, Autorizzazione e Ges4one delle Sessioni –  Zend_Acl, Zend_Authen4ca4on, Zend_Session •  E‐mail, Forma4 e Ricerca –  Zend_Json, Zend_Pdf, Zend_Mail, Zend_Mime, Zend_Search_Lucene 23 Maggio 2008 phpDay 2008 - Simone Carletti 8

Slide 9

Slide 9 text

Elementi Zend Framework •  InfrastruXura Core –  Zend_Cache, Zend_Config, Zend_Console_Getopt, Zend_Log, Zend_Memory –  Zend_Debug, Zend_Environment, Zend_Loader, Zend_Registry, Zend_Version –  Zend_Filter, Zend_Validate 23 Maggio 2008 phpDay 2008 - Simone Carletti 9 •  Web and Web Services –  Zend_Feed, Zend_Rest_Client, Zend_Service, Zend_XmlRpc_Client, Zend_Gdata, Zend_Http_Client, –  Zend_Uri

Slide 10

Slide 10 text

Zend Framework e Web Service 1.  Client per web service –  Set di client pron4 all’uso per interagire con i principali web service come Yahoo, Amazon, Technora4, Gdata... 2.  Componen4 per sfruXare web service –  Librerie e strumen4 per interagire con dei web service esisten4 3.  Componen4 per sviluppare web service –  Librerie e strumen4 per sviluppare web service 4.  Componen4 aggiun4vi a supporto –  Librerie aggiun4ve u4lizzabili a supporto per lo scambio e la validazione dei da4, come URI e Date 23 Maggio 2008 phpDay 2008 - Simone Carletti 10

Slide 11

Slide 11 text

1. Client per web service •  Zend_Service_Akismet –  hXp://framework.zend.com/manual/en/zend.service.akismet.html –  Esempi: •  verifykey.php – verifica se l’API_KEY fornita è valida. •  isspam.php – legge il file isspam.yml e per ogni commento interroga Akismet per individuare se si traXa di Ham or SPAM. 23 Maggio 2008 phpDay 2008 - Simone Carletti 11

Slide 12

Slide 12 text

1. Client per web service verifyKey()) {
 echo "Key is valid.\n";
 } else {
 echo "Key is not valid\n";
 } 23 Maggio 2008 phpDay 2008 - Simone Carletti 12 verifykey.php

Slide 13

Slide 13 text

1. Client per web service … // see original file 
 // load comment fixtures from yaml file
 $file = dirname(__FILE__) . '/isspam.yml';
 $comments = Spyc::YAMLLoad($file);
 // create a new Zend_Service_Akismet instance
 $akismet = new Zend_Service_Akismet(AKISMET_API_KEY, 'http:// www.simonecarletti.com/blog');
 // batch check comments
 echo "Starting batch: " . count($comments) . " comment(s) to check from $file";
 echo "\n";
 foreach ($comments as $comment) {
 echo "\nChecking comment from {$comment['comment_author']} …";
 $spam = $akismet->isSpam($comment);
 … // see original file 
 echo "\n Akismet: " . ($spam ? 'spam' : 'ham');
 echo "\n";
 }
 … // see original file 23 Maggio 2008 phpDay 2008 - Simone Carletti 13 isspam.php

Slide 14

Slide 14 text

1. Client per web service •  Zend_Service_Delicious –  hXp://framework.zend.com/manual/en/zend.service.delicious.html –  Esempi: •  recent.php – interroga del.icio.us e res4tuisce i 15 bookmark più recen4 salva4 dall’utente. 23 Maggio 2008 phpDay 2008 - Simone Carletti 14

Slide 15

Slide 15 text

1. Client per web service getRecentPosts();
 echo "Found " . count($posts) . " post(s)\n";
 echo "\n";
 foreach ($posts as $index => $post) {
 echo "$index.\n";
 echo " Title: {$post->getTitle()}\n";
 echo " Url: {$post->getUrl()}\n";
 echo " Desc: {$post->getNotes()}\n";
 } 23 Maggio 2008 phpDay 2008 - Simone Carletti 15 recent.php

Slide 16

Slide 16 text

1. Client per web service •  Zend_Service_Technora4 –  hXp://framework.zend.com/manual/en/zend.service.technora4.html –  Esempi: •  userinfo.php – recupera da Technora4 le informazioni rela4ve ad un dato username. •  userinfo.cli.php – versione modificata dell’esempio precedente, da avviare via command line. •  userinfo‐yml.cli.php – versione modificata dell’esempio precedente, stampa un output compa4bile con le specifiche YAML per dimostrare come è possibile interagire con altri linguaggi, ad esempio Ruby. 23 Maggio 2008 phpDay 2008 - Simone Carletti 16

Slide 17

Slide 17 text

1. Client per web service •  Zend_Service_Amazon •  Zend_Service_Audioscrobbler •  Zend_Service_Flickr •  Zend_Service_Nirvanix •  Zend_Service_Simpy •  Zend_Service_Slideshare •  Zend_Service_StrikeIron •  Zend_Service_Yahoo •  Zend_Gdata 23 Maggio 2008 phpDay 2008 - Simone Carletti 17

Slide 18

Slide 18 text

2. Componenti per sfruttare web service •  Zend_Feed –  hXp://framework.zend.com/manual/en/zend.feed.html –  Esempi: •  read.php – legge e stampa a video il contenuto di un determinato feed. 23 Maggio 2008 phpDay 2008 - Simone Carletti 18

Slide 19

Slide 19 text

2. Componenti per sfruttare web service $item) {
 echo "$index.\n";
 echo " Title: {$item->title()}\n";
 echo " Link: {$item->link()}\n";
 echo " Desc: {$item->description()}\n";
 echo "\n";
 }
 
 } catch (Zend_Feed_Exception $e) {
 echo "Aaaargh! The script crashed: " . $e->getMessage();
 } 23 Maggio 2008 phpDay 2008 - Simone Carletti 19 read.php

Slide 20

Slide 20 text

2. Componenti per sfruttare web service •  Zend_HXp_Client –  hXp://framework.zend.com/manual/en/zend.hXp.client.advanced.html –  Esempi: •  client.php – un semplice client HTTP per leggere il contenuto di un URL. •  sitestatus.cli.php – un semplicissimo script per verificare lo status di una lista di si4 web, salva4 in un file YAML. Res4tuisce un output compa4bile con YAML contenente le informazioni sullo status di ogni sito interrogato. 23 Maggio 2008 phpDay 2008 - Simone Carletti 20

Slide 21

Slide 21 text

2. Componenti per sfruttare web service •  Zend_Rest_Client –  hXp://framework.zend.com/manual/en/zend.rest.client.html •  Zend_XmlRpx_Client –  hXp://framework.zend.com/manual/en/zend.xmlrpc.client.html 23 Maggio 2008 phpDay 2008 - Simone Carletti 21

Slide 22

Slide 22 text

3. Componenti per sviluppare web service •  Zend_Rest_Server –  hXp://framework.zend.com/manual/en/zend.rest.server.html •  Zend_XmlRpc_Server –  hXp://framework.zend.com/manual/en/zend.xmlrpc.server.html •  Zend_HXp_Server •  Zend_Soap_Server 23 Maggio 2008 phpDay 2008 - Simone Carletti 22

Slide 23

Slide 23 text

4. Componenti a supporto •  Zend_Uri –  hXp://framework.zend.com/manual/en/zend.uri.html –  Esempi: •  validate.php – stampa a video il risultato della validazione di un URL •  parser.cli.php – esegue il parsing di un URL in input e stampa un output compa4bile con YAML contenente ogni frammento dell’URL, per dimostrare la possibilità di interazione tra PHP ed altri linguaggi. 23 Maggio 2008 phpDay 2008 - Simone Carletti 23

Slide 24

Slide 24 text

4. Componenti a supporto

Slide 25

Slide 25 text

4. Componenti a supporto •  Zend_Date –  hXp://framework.zend.com/manual/en/zend.date.html •  Zend_Locale –  hXp://framework.zend.com/manual/en/zend.locale.html •  Zend_Currency –  hXp://framework.zend.com/manual/en/zend.currency.html •  Zend_Measure –  hXp://framework.zend.com/manual/en/zend.measure.html 23 Maggio 2008 phpDay 2008 - Simone Carletti 25

Slide 26

Slide 26 text

The end! Simone Carle; [email protected] www.simonecarle;.com