Presentazione sui moduli introdotti in Zend Framework 2, tenuta allo Zend Framework Day del 01/02/2013 a Milano.
Come organizzo il mio modello, se le entità di base sono condivise tra più moduli? La mia applicazione ha anche un pannello amministrativo: dove metto viste e file del front-end? Come gestisco le eventuali dipendenze esterne? In questo talk cerco di rispondere a queste e altre domande relative all'organizzazione di un progetto ZF2, condividendo la mia esperienza pratica, i dubbi che mi sono posto, e le soluzioni che ho adottato. Non sempre le risposte sono state scontate, a maggior ragione dato che - quale sviluppatore ZF1 - non ero abituato all'uso dei moduli - così come intesi in ZF2. L'introduzione degli stessi può rappresentare una vera e propria svolta; è però fondamentale organizzare opportunamente il proprio progetto, dato che le reali possibilità di riuso dipendono in buona parte proprio da una buona organizzazione del proprio codice.
6. I moduli, come li conosciamo in ZF1
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
6
7. I moduli, come li conosciamo in ZF1
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
Amministrazione sito Web
gestione contenuti statici, catalogo servizi, form contatti, ecc.
7
8. I moduli, come li conosciamo in ZF1
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
Modello
Amministrazione sito Web
gestione contenuti statici, catalogo servizi, form contatti, ecc.
8
10. A re-usable piece of
functionality that can be used
to construct a more complex
application.
Evan Coury - http://evan.pro/zf2-modules-talk.html
10
11. A re-usable piece of
functionality that can be used
to construct a more complex
application.
Evan Coury - http://evan.pro/zf2-modules-talk.html
11
12. Cosa posso riutilizzare?
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
Modello
Amministrazione sito Web
gestione contenuti statici, catalogo servizi, form contatti, ecc.
12
13. Cosa posso riutilizzare?
Sito Web
contenuti statici, catalogo servizi, form contatti, ecc.
Modello
Amministrazione sito Web
gestione contenuti statici, catalogo servizi, form contatti, ecc.
13
45. Di cosa ho bisogno?
• Catalogo prodotti
• Carrello
• Checkout (e pagamento)
• Pagine (più o meno statiche)
• Pannello amministrativo
45
46. Di cosa ho bisogno?
• Catalogo prodotti
• Carrello Un modulo
• Checkout (e pagamento) ciascuno
• Pagine (più o meno statiche)
• Pannello amministrativo
46
47. Di cosa ho bisogno?
• Catalogo prodotti
• Carrello Un modulo
• Checkout (e pagamento) ciascuno
• Pagine (più o meno statiche)
• Pannello amministrativo
«orizzontale» rispetto agli altri moduli
(lasciamolo un attimo in sospeso…)
47
73. Modulo «carrello», vorrei:
• Vederlo all’opera standalone,
senza altre dipendenze
• Poter gestire prodotti diversi
73
74. Modulo «carrello», vorrei:
• Vederlo all’opera standalone,
senza altre dipendenze
• Poter gestire prodotti diversi
• Poter definire dei «vincoli» su logica e
campi (almeno nome + prezzo)
74
84. E i «vincoli» (es. nome + prezzo)?
Ereditarietà di classe
/**
* CatalogEntityProduct
* ...
*/
class Product extends EcommerceEntityCartproduct {}
O implementando interfaccia
/**
* CatalogEntityProduct
* ...
*/
class Product implements EcommerceEntityCartproductInterface {}