Newsgroup: it.comp.www.php
Titolo: Zend Framework.

Salve NG,
 
sono svariati anni che non parto con un progetto da zero in PHP per cui, visto
che ora mi ci trovo, mi sono imposto di usare e studiarmi lo Zend Framework.
 
Mi son fatto passo-passo il tutorial (della ver.2), mi son letto buona parte
della reference su oggetti che sembravano utili, ho letto blog di sviluppatori
e ho anche chiesto a google: non c'ho capito 'na mazza o, peggio, ho capito
tutto tranne come il framework s'immagina che io sviluppi.
 
Vi faccio un esempio pratico, per farmi capire.
Nello specifico sto cercando di ristrutturare un sito che ho fatto io circa
sette/otto anni fa, senza alcun framework, come s'usava all'epoca.
Ho un DB con due tabelle (sono una cifra, ma per capirci), una per gli utenti e
una per robe che gli utenti possono fare. Il sito ha le classiche cose, ricerca
di utenti, ricerca delle robe degli utenti, pagine degli utenti, pagine delle
robe. Register/login/etc. per gli utenti, un amministratore che può fare altre
operazioni. Ci sono anche varie pagine html "pure" con cose come licenze,
agreements, sitemap generata, etc. i soliti blah blah.
 
Non ho capito se fare un solo modulo, se fare un controller per ogni use-case
e delle classi che boh-dove-mettere per i codici comuni, dove mettere le view
dei "pezzetti" condivisi tra vari moduli, se fare tanti servizi da registrare
sul ServiceManager.. insomma: ci sarà un modo "standard" (dove intendo "così
come gli sviluppatori l'hanno pensato") di usare questo baraccone! Il fatto che
mi ripetano "è così flessibile che puoi fare come vuoi" non aiuta per nulla.
 
Qualche consiglio?
 
Ciao!


Ciao
diciamo che la curva di apprendimento è ripida all'inizio, ma poi una 
volta capito il funzionamento vai che è una meraviglia
intanto tieni a mente che ZF2 è DI (Dipendence injection) dipendente, 
tutto il framework è costruite sulla DI e una volta capito il suo 
funzionamento non vorrai lasciarlo più
altro fatto si basa sulla classica architettura MVC che nel caso di ZF2 
ti da la possibilità di essere anche Event-driven (altra cosa che una 
volta capita non si molla)
 
se non conosci questi pattern ti consiglio di approfondirli (non 
necessariamente per il linguaggio php)
 
per partire con ZF2 ti scarichi lo skeleton application 
(
http://framework.zend.com/manual/2.0/en/user-guide/skeleton-application.html
) 
  che praticamente ti da praticamente la BASE di partenza per la tua 
applicazione, creandoti la struttura base, e impostando di default il 
pattern MVC.
la prima volta sono partito da lì l'ho modificato per le mie esigenze.
 
puoi vedere molto materiale anche su 
http://modules.zendframework.com/
 
 
dove trovi parecchi moduli pronti per l'uso senza reinventare la ruota 
come il register/login o il supporto per l'email, il login tramite i 
social network, le autorizzazioni, la gestione dei profili, ecc..
 
considera che all'interno della struttura di una applicazione ZF2 in 
module metti i tuoi moduli, poi sta a te stabilire se mettere tutti i 
controller in un unico modulo o creare più moduli per ogni area.
mentre in vendor metti i moduli di terze parti.
 
nei miei progetti ad esempio il sito ha un suo modulo (portal) che con 
tutti i controller relativi (contatti, home, pagine, ecc.)
la parte admin (useradmin) con tutti i sui controller (gestione user, 
profili, richieste, ecc)
un altro modulo che si occupa di tutto cio che è batch (quindi che non 
ha interazione, come la gestione delle mail, il controllo delle 
notifiche, il calcolo delle fatture ecc)
 
una cosa ottima è composer che ti risolve e scarica le dipendeze.
 
se hai dubbi non esitare a chiedere
 
Ciao

 
 
Sicuramente! Adesso inizio come mi hai consigliato, ma di sicuro avrò un
sacco di altre domande da fare..
 
Grazie ancora!