ZendFramework e Web Service

  • 4,086 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,086
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
24
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Zend Framework ed i Web Service Introduzione a Zend Framework e componen4 per i web service  Simone Carle;  weppos@weppos.net  www.simonecarle;.com   phpDay 2008  Rimini, 23/24 Maggio 2008 
  • 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, WebMarke4ng, Database, Server  –  ICTv.it  •  Autore Zend Framework IT (www.zend‐framework.it)  23 Maggio 2008 phpDay 2008 - Simone Carletti 2
  • 3. 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
  • 4. 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 weppos@weppos.net !  23 Maggio 2008 phpDay 2008 - Simone Carletti 4
  • 5. 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
  • 6. Chi non usa un framework si riconosce subito! 23 Maggio 2008 phpDay 2008 - Simone Carletti 6
  • 7. 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
  • 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  •  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
  • 9. 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  •  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. 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
  • 11. 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
  • 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 quot;Key is valid.nquot;;
 } else {
     echo quot;Key is not validnquot;;
 } verifykey.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 12
  • 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 quot;Starting batch: quot; . count($comments) . quot; comment(s) to check from $filequot;;
 echo quot;nquot;;
 foreach ($comments as $comment) {
     echo quot;nChecking comment from {$comment['comment_author']} …quot;;
     $spam = $akismet->isSpam($comment);
     … // see original file 
     echo quot;n  Akismet:   quot; . ($spam ? 'spam' : 'ham');
     echo quot;nquot;;
 }
 … // see original file  isspam.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 13
  • 14. 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
  • 15. 1. Client per web service <?php
 require_once 'Zend/Service/Delicious.php';
 $delicious  = new Zend_Service_Delicious(USERNAME, PASSWORD);
 $posts      = $delicious->getRecentPosts();
 echo quot;Found quot; . count($posts) . quot; post(s)nquot;;
 echo quot;nquot;;
 foreach ($posts as $index => $post) {
     echo quot;$index.nquot;;
     echo quot;  Title: {$post->getTitle()}nquot;;
     echo quot;  Url:   {$post->getUrl()}nquot;;
     echo quot;  Desc:  {$post->getNotes()}nquot;;
 } recent.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 15
  • 16. 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
  • 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. 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
  • 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 quot;$index.nquot;;
         echo quot;  Title: {$item->title()}nquot;;
         echo quot;  Link:  {$item->link()}nquot;;
         echo quot;  Desc:  {$item->description()}nquot;;
         echo quot;nquot;;
     }
     
 } catch (Zend_Feed_Exception $e) {
     echo quot;Aaaargh! The script crashed: quot; . $e->getMessage();
 } read.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 19
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 4. Componenti a supporto <?php
 require_once 'Zend/Uri.php';
 $url = 'http://www.simonecarletti.com/';
 echo quot;Validating `$url`: quot;;
 echo Zend_Uri::check($url) ? quot;validquot; : quot;invalidquot;;
 echo quot;nquot;; validate.php 23 Maggio 2008 phpDay 2008 - Simone Carletti 24
  • 25. 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
  • 26. The end! Simone Carle;  weppos@weppos.net  www.simonecarle;.com