+ All Categories
Home > Technology > Zend Dojo

Zend Dojo

Date post: 05-Dec-2014
Category:
Upload: grusp
View: 5,928 times
Download: 5 times
Share this document with a friend
Description:
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.
21
Copyright © 2007, Zend Technologies Inc. Zend_Dojo: l'integrazione della libreria Dojo nello Zend Framework by Enrico Zimuel Senior Consultant - Zend Technologies Email: [email protected] Blog: http://www.zimuel.it/blog
Transcript
Page 1: Zend Dojo

Copyright © 2007, Zend Technologies Inc.

Zend_Dojo: l'integrazione della libreria Dojo nello Zend Frameworkby Enrico ZimuelSenior Consultant - Zend Technologies

Email: [email protected]: http://www.zimuel.it/blog

Page 2: Zend Dojo

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

Page 3: Zend Dojo

| May 15, 2009

Name of this section | 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/

Page 4: Zend Dojo

| May 15, 2009

| 4

Dojo

• Dojo è una libreria JavaScript open source per la realizzazione di Rich Internet Applications (RIA)

• Caratteristiche principali: performance; affidabilità; ampia disponibilità funzioni:

manipolazione DOM, animazioni, Ajax, gestione Eventi e normalizzazione keyboard

Supporto multi-browser (Firefox, IE, Safari, Opera, etc)

internazionalizzazione (i18n) e accessibilità (a11y)

http://dojotoolkit.org/

Page 5: Zend Dojo

| May 15, 2009

| 5

Dojo: curiosità

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

道場

Page 6: Zend Dojo

| May 15, 2009

| 6

L'architettura di Dojo

Libreria di base < 30 Kb

Page 7: Zend Dojo

| May 15, 2009

| 7

Dojo: esempi

http://demos.dojotoolkit.org

Page 8: Zend Dojo

| May 15, 2009

| 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

Page 9: Zend Dojo

| May 15, 2009

| 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

Page 10: Zend Dojo

| May 15, 2009

| 10

Classic web application model (sync)

Page 11: Zend Dojo

| May 15, 2009

| 11

Ajax (async)

Page 12: Zend Dojo

| May 15, 2009

| 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

Page 13: Zend Dojo

| May 15, 2009

| 13

Esempio di struttura dati in JSON

{ "type": "menu", "value": "File", "items": [ {"value": "New", "action": "CreateNewDoc"}, {"value": "Open", "action": "OpenDoc"}, {"value": "Close", "action": "CloseDoc"} ]}

• Formato: { “etichetta” : “valore” }

Page 14: Zend Dojo

| May 15, 2009

| 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

Page 15: Zend Dojo

| May 15, 2009

| 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

Page 16: Zend Dojo

| May 15, 2009

| 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”>

Page 17: Zend Dojo

| May 15, 2009

| 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

Page 18: Zend Dojo

| May 15, 2009

| 18

• 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).

Using Layers (custom builds)

Page 19: Zend Dojo

| May 15, 2009

| 19

Zend_Dojo: esempio

Page 20: Zend Dojo

| May 15, 2009

| 20

• 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)

Riferimenti

Page 21: Zend Dojo

Grazie!

Per maggiori info: http://www.zend.com


Recommended