Quick Upload

Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer.To install it, go here
 
Post to Twitter Post to Twitter
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons
SlideShare is now available on LinkedIn. Add it to your LinkedIn profile.

ZendFramework e Web Service

From weppos, 6 months ago Add as contact

Introduzione a Zend Framework e componenti per scrivere, creare ed interagire con i web service.

1589 views | 0 comments | 2 favorites | 1 downloads | 5 embeds (Stats)

Categories

Technology

Groups/Events

Embed in your blog options close
Embed (wordpress.com) Exclude related slideshows Embed in your blog

More Info

This slideshow is Public
Total Views: 1589 on Slideshare: 1342 from embeds: 247
Flagged as inappropriate Flag as inappropriate

Flag as inappropriate

Select your reason for flagging this slideshow as inappropriate.

If needed, use the feedback form to let us know more details.

Slideshow Transcript

  1. Slide 1: Zend Framework ed i Web Service Introduzione a Zend Framework ed i componenti per web service Simone Carletti weppos@weppos.net phpDay 2008 Rimini, 23/24 Maggio 2008
  2. Slide 2: 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, WebMarketing, Database, Server – ICTv.it • Autore Zend Framework IT (www.zend-framework.it) 23 Maggio 2008 phpDay 2008 - Simone Carletti 2
  3. Slide 3: Contenuti • Introduzione ai framework • Introduzione a Zend Framework e caratteristiche • Zend Framework ed i Web Service 1. Client per web service 2. Componenti per sfruttare i web service 3. Componenti per sviluppare i web service 4. Componenti a supporto 23 Maggio 2008 phpDay 2008 - Simone Carletti 3
  4. Slide 4: Note per gli Esempi • Per questioni di leggibilità, questa presentazione riporta solo frammenti degli script realizzati come esempio • Gli script sono disponibili in un pacchetto chiamato phpday2008.tgz, scaricabile dal mio sito o dal sito www.phpDay.it • Leggere il file README contenuto all’ìnterno del pacchetto 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 weppos@weppos.net ! 23 Maggio 2008 phpDay 2008 - Simone Carletti 4
  5. Slide 5: I framework • Che cos’è un framework? – Collezione di librerie – Raccolta di strumenti • Perchè un framework? – Aumento della produttività – Soluzioni già pronte ai problemi comuni – Manutenzione del software – Uniformità e standard – Lo sviluppo è più divertente! 23 Maggio 2008 phpDay 2008 - Simone Carletti 5
  6. Slide 6: Chi non usa un framework si riconosce subito! 23 Maggio 2008 phpDay 2008 - Simone Carletti 6
  7. Slide 7: Zend Framework • Web Framework Open Source (Licenza New BSD) • Scritto in PHP 5 Object Oriented (PHP 5.1.4) • Promosso da Zend Technologies • Oltre 100 contributors attivi • http://framework.zend.com/ • www.zend-framework.it (non ufficiale) 23 Maggio 2008 phpDay 2008 - Simone Carletti 7
  8. Slide 8: 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 • Autenticazione, Autorizzazione e Gestione delle Sessioni – Zend_Acl, Zend_Authentication, Zend_Session • E-mail, Formati e Ricerca – Zend_Json, Zend_Pdf, Zend_Mail, Zend_Mime, Zend_Search_Lucene 23 Maggio 2008 phpDay 2008 - Simone Carletti 8
  9. Slide 9: Elementi Zend Framework • Infrastruttura 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 • Web and Web Services – Zend_Feed, Zend_Rest_Client, Zend_Service, Zend_XmlRpc_Client, Zend_Gdata, Zend_Http_Client, – Zend_Uri 23 Maggio 2008 phpDay 2008 - Simone Carletti 9
  10. Slide 10: Zend Framework e Web Service 1. Client per web service – Set di client pronti all’uso per interagire con i principali web service come Yahoo, Amazon, Technorati, Gdata... • Componenti per sfruttare web service – Librerie e strumenti per interagire con dei web service esistenti • Componenti per sviluppare web service – Librerie e strumenti per sviluppare web service • Componenti aggiuntivi a supporto – Librerie aggiuntive utilizzabili a supporto per lo scambio e la validazione dei dati, come URI e Date 23 Maggio 2008 phpDay 2008 - Simone Carletti 10
  11. Slide 11: 1. Client per web service • Zend_Service_Akismet – http://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 tratta di Ham or SPAM. 23 Maggio 2008 phpDay 2008 - Simone Carletti 11
  12. Slide 12: 1. Client per web service <?php require_once dirname(__FILE__) . '/../helper.php'; require_once 'Zend/Service/Akismet.php'; $blog = 'http://www.simonecarletti.com/blog'; $akismet = new Zend_Service_Akismet(AKISMET_API_KEY, ); if ($akismet->verifyKey()) { echo \"Key is valid.\\n\"; } else { echo \"Key is not valid\\n\"; } verifykey.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 12
  13. Slide 13: 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\"; } isspam.php … // see original file 23 Maggio 2008 phpDay 2008 - Simone Carletti 13
  14. Slide 14: 1. Client per web service • Zend_Service_Delicious – http://framework.zend.com/manual/en/zend.service.delicious.html – Esempi: • recent.php – interroga del.icio.us e restituisce i 15 bookmark più recenti salvati dall’utente. 23 Maggio 2008 phpDay 2008 - Simone Carletti 14
  15. Slide 15: 1. Client per web service <?php require_once 'Zend/Service/Delicious.php'; $delicious = new Zend_Service_Delicious(USERNAME, PASSWORD); $posts = $delicious->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\"; } recent.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 15
  16. Slide 16: 1. Client per web service • Zend_Service_Technorati – http://framework.zend.com/manual/en/zend.service.technorati.html – Esempi: • userinfo.php – recupera da Technorati le informazioni relative 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 compatibile con le specifiche YAML per dimostrare come è possibile interagire con altri linguaggi, ad esempio Ruby. 23 Maggio 2008 phpDay 2008 - Simone Carletti 16
  17. Slide 17: 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
  18. Slide 18: 2. Componenti per sfruttare web service • Zend_Feed – http://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
  19. Slide 19: 2. Componenti per sfruttare web service <?php require_once 'Zend/Feed.php'; // Fetch the latest posts try { $feed = Zend_Feed::import('http://www.zend-framework.it/feed'); // loop all items foreach($feed as $index => $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(); } read.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 19
  20. Slide 20: 2. Componenti per sfruttare web service • Zend_Http_Client – http://framework.zend.com/manual/en/zend.http.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 siti web, salvati in un file YAML. Restituisce un output compatibile con YAML contenente le informazioni sullo status di ogni sito interrogato. 23 Maggio 2008 phpDay 2008 - Simone Carletti 20
  21. Slide 21: 2. Componenti per sfruttare web service • Zend_Rest_Client – http://framework.zend.com/manual/en/zend.rest.client.html • Zend_XmlRpx_Client – http://framework.zend.com/manual/en/zend.xmlrpc.client.html 23 Maggio 2008 phpDay 2008 - Simone Carletti 21
  22. Slide 22: 3. Componenti per sviluppare web service • Zend_Rest_Server – http://framework.zend.com/manual/en/zend.rest.server.html • Zend_XmlRpc_Server – http://framework.zend.com/manual/en/zend.xmlrpc.server.html • Zend_Http_Server • Zend_Soap_Server 23 Maggio 2008 phpDay 2008 - Simone Carletti 22
  23. Slide 23: 4. Componenti a supporto • Zend_Uri – http://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 compatibile 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
  24. Slide 24: 4. Componenti a supporto <?php require_once 'Zend/Uri.php'; $url = 'http://www.simonecarletti.com/'; echo \"Validating `$url`: \"; echo Zend_Uri::check($url) ? \"valid\" : \"invalid\"; echo \"\\n\"; validate.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 24
  25. Slide 25: 4. Componenti a supporto • Zend_Date – http://framework.zend.com/manual/en/zend.date.html • Zend_Locale – http://framework.zend.com/manual/en/zend.locale.html • Zend_Currency – http://framework.zend.com/manual/en/zend.currency.html • Zend_Measure – http://framework.zend.com/manual/en/zend.measure.html 23 Maggio 2008 phpDay 2008 - Simone Carletti 25
  26. Slide 26: The end! Simone Carletti weppos@weppos.net www.simonecarletti.com