Articoli della categoria 'prado php framework' ↓

LightBox & Prado

Considero LightBox una bella innovazione, permette di visualizzare gli ingrandimenti delle immagini in modo che fa tanto “Web 2.0″ =)

Visto che lo utlizziamo pressochè in tutti i progetti, ho deciso che fosse giunto il momento di fare un componente ad hoc.
LightBox utilizza prototype e scriptacolous, utilissime librerie JavaScript già incluse in Prado

Qui trovate il componente con degli esempi: lightbox.zip

Basta estrarlo e modificare $frameworkPath in index.php, buon divertimento =)

Prado 3 & PHPMailer in 3 minuti

Menu del giorno:Troppe e-mail da mandare ed in così poco tempo!

Se vi accorgete tutto d’un tratto di:

  • avere un caldo tremendo
  • vedere, e anche da troppo vicino, una dead-line improponibile
  • ricordare di avere una tonnellata di mail da spedire con prado V 2.x quando, da vera volpe del deserto, avete sviluppato l’intero progetto in V 3.x

State calmi, vi suiciderete un’alltro giorno.In tre minuti sarete in grado di utlizzare PHPMailer con il vostro amato framework.

Prelevate l’ultima versione di PHPMailer (http://prdownloads.sourceforge.net/).
Scompattatelo nella dir /protected/ in modo che il percorso al file class.phpmailer.php risulti:/protected/phpmailer/class.phpmailer.php
Rinominate class.phpmailer.php in PHPMailer.php (per poter essere caricato con l’ __autoload() di prado)
Ora potete creare il vostro primo file nel quale incollare i bei metodi di prado 2.x per mandare tante tante email =)

in testa alla vostra pagina basta mettere:

Prado::using(’Application.phpmailer.PHPMailer‘);

e poi usare PHPMailer nel solito modo:

$mail = new PHPMailer();
$mail->AddAddress(’nome@email.com’,”nome cognome”);
…….
$mail->Send();

facile no? ^^

Prado Vs. Pradolite

Menu del giorno: Benchmarking

Il vero tallone d’achille di prado v2.X erano le performances, che ne sconsigliavano l’uso per siti con un elevato numero di accessi conconrrenziali, soprattutto se non si possedeva un server dedicato.

Prado V3 , oltre ad essere gia di per sè estremamente più veloce, mette a dispozione delle nuove features proprio per l’ottimizzazione delle prestazioni.

Una di queste è il caching dei componenti su database Sqlite, per attivarle basta dichiarare nel config dell’applicazione il seguente frammento di codice:

<module id="cache" class="System.Caching.TSqliteCache" />

Un’atra feature consiste in pradolite, è uno shell script in php (in
/buildscripts/phpbuilder/
) che legge i file che vengono utilizzati nell’applicazione e genera un unico file con tutte le classi utilizzate, rimuove i commenti e i vari debug e log.

Una volta richiamato (con php build.php) genererà un file pradolite.php nella dir del framework.Basta includerlo al posto di prado.php.

Qui di seguito trovate 2 benchamrk che ho effetuato su una pagina di prado che effettua alcune operazioni base, come accesso/query a database, localizzazione di componenti etc.

Con prado.php (1000 richieste simultanee)
Connection Times (ms)

              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   156  163  25.1    159     428
Waiting:      139  145  23.4    142     397
Total:        156  163  25.1    159     428

Percentage of the requests served within a certain time (ms)
50% 159
66% 160
75% 160
80% 161
90% 162
95% 167
98% 223
99% 256
100% 428 (longest request)

Con pradolite.php(1000 richieste simultanee)
Connection Times (ms)

              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   143  149  14.3    146     311
Waiting:      128  132  11.0    130     229
Total:        143  149  14.3    146     311

Percentage of the requests served within a certain time (ms)
50% 146
66% 147
75% 147
80% 148
90% 152
95% 175
98% 202
99% 225
100% 311 (longest request)

Sinceramente mi sarei aspettato qualcosina di più =). Tuttavia un incremento evidente lo si puo notare con l’aumentare del numero di richieste.
Rimane comunque un ampio margine di miglioramento, come il caching dell’output (che puo essere implementato facilmente estendendo TSqliteCache), l’inclusione in pradolite delle classi custom e se si dispone un server dedicato acceleratori come APC o Zend Optimizer, che hanno dimostrato di diminuire il tempo di esecuzione degli script di 10 volte.

Prado e Zend a braccetto

Recentemente ho notato che è stata aggiunta una funzione di search nell’applicazione-demo quickstart tutorial di prado3.
Curisando tra il codice (reperibile via svn) ho capito che il search testuale è delegato ad un servizio del neonato Zend Framework, per altro implementato ,con la consueta eleganza, tramite un decorator pattern.
(per chi vuole approfondire il componente di zend: zend.search )

In questo modo possiamo usare il nostro fw preferito e poter contare su un set di servizi/librerie davvero “conveniente”.(Zend_Db, Zend_Feed, Zend_Filter, Zend_InputFilter, Zend_HttpClient, Zend_Json, Zend_Log, Zend_Mail, Zend_Mime, Zend_Pdf, Zend_Search, Zend_Service_Amazon, Zend_Service_Flickr, Zend_Service_Yahoo, Zend_XmlRpc)

Nuove possibilità all’orizzonte? La cosa si fa sempre più interessante…..