Zend_Dojo: l'integrazione della
libreria Dojo nello Zend Framework
by Enrico Zimuel
Senior Consultant - Zend Technologies
...
Sommario


  •   Che cos'è lo Zend Framework (ZF)?
  •   Che cos'è Dojo?
  •   L'architettura di Dojo
  •   Configurare l'...
Zend Framework

 • Framework PHP open source
     Semplicità di utilizzo
     Architettura flessibile
     Funzionalità...
Dojo
• Dojo è una libreria JavaScript open
  source per la realizzazione di Rich Internet
  Applications (RIA)
• Caratteri...
Dojo: curiosità

• Dōjō, è un termine giapponese che significa
  etimologicamente luogo (jō) dove si segue la via (dō)



...
L'architettura di Dojo




               Libreria di base < 30 Kb

                                                    | ...
Dojo: esempi


               http://demos.dojotoolkit.org




                                                | | 7
     ...
Zend Framework e Dojo

 • Disponibile a partire dalla versione 1.6 dello Zend
   Framework
 • Dojo view helper per la gest...
Supporto Dijit

  • Supporto della maggior parte dei componenti dijits
    (Dojo widgets)
  • Utilizzo di view helpers per...
Classic web application model (sync)




                                                 | | 10
                         ...
Ajax (async)




                         | | 11
               May 15, 2009
dojo.data Payload

  • dojo.data è una struttura dati utilizzata dai
      componenti Dojo
  •   Zend_Dojo_Data gestisce l...
Esempio di struttura dati in JSON

 {
     quot;typequot;: quot;menuquot;,
     quot;valuequot;: quot;Filequot;,
     quot...
Supporto JSON-RPC

  • JSON-RPC è un protocollo di Remote Procedure
      Call che utilizza JSON per la serializzazione de...
dojo() View Helper

  • Impostazione dell'ambiente dojo
      $view->addHelperPath('Zend/Dojo/View/Helper/',
       'Zend...
dojo() View Helper - temi

 • Dojo consente la creazione di temi personalizzati per
     i dijits (widgets).
      $view-...
Dijit-Specific View Helpers

 • “Dijit è un sistema di elementi grafici (widget)
   sviluppato sulla base di dojo” (manual...
Using Layers (custom builds)


  • Ogni dojo.require effettua una richiesta al server per il
    download del relativo fil...
Zend_Dojo: esempio




                               | | 19
                     May 15, 2009
Riferimenti

  • Matthew A.Russell “Dojo, the definitive guide”
      O'Reilly (2008)
  •   Rawld Gill, Craig Riecke, Alex...
Grazie!

Per maggiori info: http://www.zend.com
Upcoming SlideShare
Loading in …5
×

Zend Dojo

3,684 views
3,590 views

Published on

In questo talk si parlerà dell’integrazione della libreria javascript Dojo Toolkit nello Zend Framework e di come sia possibile sviluppare applicazioni RIA direttamente da PHP senza dover scrivere codice in javascript.In particolare verranno presentati i seguenti argomenti: integrare le widget Dijit con Zend_View, Form 2.0 con Zend_Form e Dojo e creare un datastore remoto con Zend_Dojo_Data.

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,684
On SlideShare
0
From Embeds
0
Number of Embeds
74
Actions
Shares
0
Downloads
44
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Zend Dojo

  1. 1. Zend_Dojo: l'integrazione della libreria Dojo nello Zend Framework by Enrico Zimuel Senior Consultant - Zend Technologies Email: enrico.z@zend.com Blog: http://www.zimuel.it/blog Copyright © 2007, Zend Technologies Inc.
  2. 2. Sommario • Che cos'è lo Zend Framework (ZF)? • Che cos'è Dojo? • L'architettura di Dojo • Configurare l'ambiente Dojo in ZF: il view helper dojo() • Utilizzo dei widgets Dijit nello Zend_View • Form 2.0 con Zend_Form e Dojo
  3. 3. Zend Framework • Framework PHP open source  Semplicità di utilizzo  Architettura flessibile  Funzionalità Web 2.0 • Web services • Ajax (integrazione Dojo, Adobe Flex)  Codice di qualità (testato con PHPUnit) • Scritto in PHP 5, Object Oriented, MVC • Versione 1.8.1, download ed info: http://framework.zend.com/ Name of this section | | 3 May 15, 2009
  4. 4. Dojo • Dojo è una libreria JavaScript open source per la realizzazione di Rich Internet Applications (RIA) • Caratteristiche principali:  performance;  affidabilità;  ampia disponibilità funzioni: http://dojotoolkit.org/ manipolazione DOM, animazioni, Ajax, gestione Eventi e normalizzazione keyboard  Supporto multi-browser (Firefox, IE, Safari, Opera, etc)  internazionalizzazione (i18n) e accessibilità (a11y) | | 4 May 15, 2009
  5. 5. Dojo: curiosità • Dōjō, è un termine giapponese che significa etimologicamente luogo (jō) dove si segue la via (dō) 道場 | | 5 May 15, 2009
  6. 6. L'architettura di Dojo Libreria di base < 30 Kb | | 6 May 15, 2009
  7. 7. Dojo: esempi http://demos.dojotoolkit.org | | 7 May 15, 2009
  8. 8. Zend Framework e Dojo • Disponibile a partire dalla versione 1.6 dello Zend Framework • Dojo view helper per la gestione dell'ambiente Dojo • View helpers di tipo Dijit per la creazione di form ed elementi • Gestione delle strutture dojo.data con la classe Zend_Dojo_Data • JSON-RPC implementazione server | | 8 May 15, 2009
  9. 9. Supporto Dijit • Supporto della maggior parte dei componenti dijits (Dojo widgets) • Utilizzo di view helpers per il rendering dei dijits  I dijits sono generati automaticamente (default)  Possibilità di specificare lo stile di generazione • Form decorators per i layout ed i form dijits  Utilizzo di layout dijit decorators specifici per forms, sub forms e gruppi di visualizzazione • Gestione degli elementi di un form dijits  Mappatura con i dijit view helpers | | 9 May 15, 2009
  10. 10. Classic web application model (sync) | | 10 May 15, 2009
  11. 11. Ajax (async) | | 11 May 15, 2009
  12. 12. dojo.data Payload • dojo.data è una struttura dati utilizzata dai componenti Dojo • Zend_Dojo_Data gestisce la generazione di strutture dati compatibili con dojo.data • Possibilità di gestire ogni oggetto (arrays, Iterators, etc.) tramite un identificatore utilizzato poi per la creazione di una struttura JSON (JavaScript Object Notation). • JSON è un formato adatto per lo scambio dei dati in applicazioni client-server | | 12 May 15, 2009
  13. 13. Esempio di struttura dati in JSON { quot;typequot;: quot;menuquot;, quot;valuequot;: quot;Filequot;, quot;itemsquot;: [ {quot;valuequot;: quot;Newquot;, quot;actionquot;: quot;CreateNewDocquot;}, {quot;valuequot;: quot;Openquot;, quot;actionquot;: quot;OpenDocquot;}, {quot;valuequot;: quot;Closequot;, quot;actionquot;: quot;CloseDocquot;} ] } • Formato: { “etichetta” : “valore” } | | 13 May 15, 2009
  14. 14. Supporto JSON-RPC • JSON-RPC è un protocollo di Remote Procedure Call che utilizza JSON per la serializzazione dei messaggi • Lo schema JSON specifica il Service Mapping Description (SMD) per la definizione dei metodi disponibili • Zend_Json_Server implementa un server di tipo JSON-RPC con il supporto SMD • Utilizzato principalmente nello sviluppo di applicazioni client “pesanti” dove il codice client è incluso in una View del modello MVC | | 14 May 15, 2009
  15. 15. dojo() View Helper • Impostazione dell'ambiente dojo  $view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper'); • Percorso delle librerie javascript (CDN o locale)  $view->dojo()->setLocalPath('...') • Impostazione dei paths per I moduli personalizzati  $view->dojo()->registerModulePath('...') • Impostazione del dojo.require per l'inclusione arbitraria di moduli dojo  $view->dojo()->requireModule('...') • Impostazione dell'evento onLoad | | 15 May 15, 2009
  16. 16. dojo() View Helper - temi • Dojo consente la creazione di temi personalizzati per i dijits (widgets).  $view->dojo()-> addStylesheetModule('dijit.themes.tundra'); • Il path del tema è ricostruito sostituendo al '.' il separatore di directory ed utilizzando l'ultimo valore come nome del file .CSS. • dijit.themes.tundra -> dijit/themes/tundra/tundra.css • Quando si utilizza un tema è necessario impostarlo nel file HTML, il metodo più sicuro è includerlo nel body: <body class=”tundra”> | | 16 May 15, 2009
  17. 17. Dijit-Specific View Helpers • “Dijit è un sistema di elementi grafici (widget) sviluppato sulla base di dojo” (manuale Dojo) • Zend Framework fornisce un insieme di view helper per l'utilizzo di dijit, essi si suddividono in tre categorie:  Layout Containers  Form Dijit  Form Elements | | 17 May 15, 2009
  18. 18. Using Layers (custom builds) • Ogni dojo.require effettua una richiesta al server per il download del relativo file javascript • Se sono presenti più dijits si avranno numerose richieste al server con evidenti rallentamenti!!! • In Dojo c'è la possibilità di creare custom builds tramite le utils fornite con la libreria • I file vengono raggruppati in layers (un singolo file JS). | | 18 May 15, 2009
  19. 19. Zend_Dojo: esempio | | 19 May 15, 2009
  20. 20. Riferimenti • Matthew A.Russell “Dojo, the definitive guide” O'Reilly (2008) • Rawld Gill, Craig Riecke, Alex Russell “Mastering Dojo. JavaScript and Ajax Tools for Great Web Experiences” The Pragmatic Bookshelf (2008) • Frank Zammetti “Practical Dojo Projects” Apress (2008) • Peter Svensson “Learning Dojo” Packt Publishing (2008) | | 20 May 15, 2009
  21. 21. Grazie! Per maggiori info: http://www.zend.com

×