Newsgroup: it.comp.www.php
Titolo: sintassi zend framework

ciao,
come fa a funzionare un codice come il seguente?
$form->setAction('/resource/process')
      ->setMethod('POST')
      ->setAttrib('id', 'login');
io avrei messo per ogni riga $form prima del -> e il punto e virgola 
alla fine.
Non ho trovato sul manuale nessun accenno a questo modo di chiamare i 
metodi uno di seguito all'altro.
E' una particolarita' di come sono fatte le classi dello zend framework?
ciao
Mauro

Innuendo ha scritto:

Non conosco bene lo ZF, ma non e' che il primo metodo setAction()
restituisce un oggetto che ha a sua volta un metodo chiamato
setMethod() che restituisce un'altro oggetto che a sua volta ha un
metodo chiamato setAttrib()?
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

 E' una particolarita' di come sono fatte le classi dello zend framework?
Esatto, ma puoi farlo con qualunque classe, basta che alla fine dei 
metodi metti un "return $this".
Bye.

 In questo modo puoi collegare le varie chiamate in quel modo.
Bello, grazie, non la sapevo proprio ... e' un po' come aveva spiegato 
anche Filippo quindi.
Senti, ne approfitto visto che mi pare che tu conosca piuttosto bene lo 
ZF, io ci sto facendo alcuni test per capire se adottarlo o meno.
Utilizzando la architettura predefinita di ZF la visualizzazione della 
home di un sito "vuoto" sul mio pc richiede oltre 1.5 secondi alla prima 
chiamata e circa 0.37 nelle successive, un valore altissimo se 
confrontato con gli 0.00017 secondi necessari per una pagina semplice, 
ma molto altro anche rispetto agli 0.012 necessari per una pagina che 
utilizza un template engine (xtpl).
Anche tu riscontri un rallentamento cosi' vistoso nelle prestazioni del 
tuo web server utilizzando ZF?
grazie, ciao
Mauro

 tuo web server utilizzando ZF?
Magari non cosi` vistoso, ma un rallentamento c'e`, ed anche abbastanza 
marcato.
Il problema e` dato sia dall'elevato numero di classi, sia dall'alto 
numero di require_once(), sia da alcuni plugin abilitati di default.
Da benchmark recenti, gia` solo disabilitando il viewRenderer (e poi 
mettendo un banale $this->render() alla fine di ogni action) si guadagna 
anche un 25-30% in prestazioni.
Se puoi, abilita una cache come eAccelerator o APC.
Stanno lavorando sia sullo ZF sia su PHP per ridurre un po' i tempi, ma 
in buona parte e` lo scotto da pagare per avere un'architettura ad 
oggetti cosi` estesa.
Bye.

 oggetti cosi` estesa.
Quoto Alessandro.
D'altra parte penso che le differenze di tempi di elaborazione tra PHP
"puro" e Zend Framework risultano evidenti nel caso di pagine "banali".
In un progetto esteso che richieda una marea di cose per funzionare,
creato secondo logica OO, in cui ogni classe è salvata in ogni singolo
file, ecc., le differenze temporali impiegate per completare
l'elaborazione di qualcosa scritta con lo Zend Framework e
qualcos'altro fatta in PHP puro sarebbero sicuramente molto più
assottigliate.
Inoltre non penso sia un problema dello Zend Framework in particolare.
La cosa dovrebbe valere per qualsiasi architettura general-purpose che
permetta potenzialmente di fare tante cose. Lo stesso Joomla impiega un
bel po' per completare il rendering di una pagina, quando la stessa
pagina "banale" impiegherebbe un decimo del tempo.
-- 
rob4you

 anche un 25-30% in prestazioni.
ottimo, grazie della info!
Ho fatto alcune prove ed effettivamente le pagine banali guadagnano 
molto, quelle che fanno query su db non mi funzionano + ... adesso devo 
studiarmi meglio la parte sulle view.
Hai altri consigli o "trucchetti" tipo questo?
ciao
Mauro

 Hai altri consigli o "trucchetti" tipo questo?
Per ora e` stato trovato solo quel collo di bottiglia, poi dipende anche 
da quali funzionalita` usi. In generale i plugin tendono a rallentare 
molto perche` vengono istanziati anche quando non servono, mentre altre 
cose (come i viewHelper) li istanzi solo quando li usi, quindi pesano 
meno.
Togliendo l'MVC guadagni parecchio in prestazioni (elimini una ventina di 
classi caricate ed eseguite), ma naturalmente perdi anche tutta la 
comodita` di gestione che ti da`.
Bye.

 comodita` di gestione che ti da`.
Beh, mi dai una ottima notizia :-) io finora uso un mini framework mvc 
di mia implementazione, va molto bene come prestazioni ma e' piuttosto 
carente nella parte di gestione delle form, quindi se riesco ad 
utilizzare le Zend_Form con il mio mvc sono a posto !
ciao e grazie
Mauro

 utilizzare le Zend_Form con il mio mvc sono a posto !
Ho un po' lasciato in disparte Zend_Form finora, ma da quel che ho capito 
e` slegata dal resto, infatti viene usata nel controller e non nella view 
(dove c'e` solo il rendering dell'HTML generato), quindi non dovresti 
avere problemi ad usarla al di fuori dell'MVC "integrato".
Bye.