Articoli

Paginazione dei dati

Introduzione In una applicazione web capita spesso di dover mostrare all’utente un elenco di dati provenienti dal database. A volte questi dati sono numerosi pertanto, per ragioni estetiche e di usabilità, è necessario suddividerli in diverse pagine web. L’accesso alle singole pagine avviene tramite dei link posti comunemente al disopra e al disotto dell’elenco parziale di dati. Questa tecnica di rappresentazione dei dati viene comunemente detta paginazione e gli esempi sul web sono numerosi, si pensi ad esempio ai risultati di un motore di ricerca o all’elenco dei messaggi di un forum o di un blog.

Autenticare gli utenti con Zend_Auth - 2

Zend_Auth_Adapter_DbTable Nel precedente articolo abbiamo analizzato i diversi componenti che concorrono alla realizzazione del sistema di autenticazione utente presente nello Zend Framework. In particolare abbiamo visto come il controllo delle credenziali dell’utente avviene grazie ad una classe detta Adapter. Tra gli Adapter già presenti nello Zend Framework vi è Zend_Auth_Adapter_DbTable che può essere usato per confrontare lo username e la password forniti dall’utente con quelli memorizzati in una tabella di un database.

Autenticare gli utenti con Zend_Auth - 1

Introduzione L’autenticazione degli utenti è una delle funzionalità più diffuse nelle applicazioni web. Questa operazione, comunemente chiamata login, si basa sul controllo delle credenziali fornite e non deve essere confusa con la gestione delle autorizzazioni, processo con cui si stabilisce se un utente (già identificato) possiede i diritti per accedere ad una particolare risorsa. Lo Zend Framework offre due componenti per la gestione dell’autenticazione e delle autorizzazioni, rispettivamente lo Zend_Auth e lo Zend_Acl.

Zend Framework Tutorial - 5

NewsController Siamo finalmente arrivati all’ultima parte di questa serie di articoli dedicati alla realizzazione di una applicazione con lo Zend Framework. Dobbiamo analizzare il funzionamento del NewsController, il cuore della nostro sito web, che si occupa della visualizzazione, inserimento, modifica e cancellazione delle news. Di seguito viene riportata la struttura del Controller che sarà analizzata in dettaglio nelle prossime pagine. class NewsController extends Zend_Controller_Action { protected $_flashMessenger = null; public function init() { // istruzioni.

Zend Framework Tutorial - 4

IndexController Dopo aver analizzato la classe Model che gestisce tutta l’interazione con il database, possiamo finalmente iniziare a vedere i Controller della nostra applicazione ed i template HTML associati. Abbiamo detto che i Controller sono classi costituite da Action, metodi che vengono automaticamente richiamati dal Front Controller per svolgere una particolare funzionalità del sito, associata ad un URL richiesto dall’utente. Cosa ci aspettiamo di trovare quindi in una Action? Generalmente una Action preleva eventuali dati presenti nella richiesta effettuata dall’utente (come i dati GET e POST), richiama uno o più Model per interagire col database e mostra il risultato del suo operato caricando (implicitamente o esplicitamente) un template a cui passa i dati dinamici da visualizzare.

Zend Framework Tutorial - 3

Model Poiché tutte le funzionalità del sito che stiamo realizzando fanno accesso ai dati presenti nel database, prima di realizzare i Controller del nostro progetto analizziamo il funzionamento del Model, ovvero della classe responsabile di tutte le operazioni eseguite direttamente sulla base di dati. Per realizzare il Model adotteremo il classico approccio di una applicazione PHP/MySQL basato sull’esecuzione esplicita di query attraverso lo Zend_Db_Adapter. Il Model per la gestione delle news sarà quindi una classe con un metodo per ciascuna funzionalità fondamentale sui dati della news: getAllNews per lettura di tutte le news (per la home-page), getNewsById per lettura di una singola news (impiegata nelle pagine di visualizzazione e modifica di una singola news), insertUpdateNews per l’inserimento e la modifica e deleteNews per la cancellazione.

Zend Framework Tutorial - 2

Struttura del progetto Nel precedente articolo abbiamo cominciato a vedere quali sono gli elementi che costituiscono la nostra applicazione web realizzata con lo Zend Framework. Abbiamo detto che sono necessarie delle classi di tipo Controller per ciascun gruppo di funzionalità correlate, un Controller per gestire la home page (IndexController) ed un altro per la pagina di errore (ErrorController). Abbiamo detto poi che avremmo utilizzato diversi file per conservare i template HTML e uno o più classi Model per effettuare l’accesso ai dati.

Zend Framework Tutorial - 1

Introduzione Lo Zend Framework è una completa collezione di classi da impiegare nella realizzazione di applicazioni PHP di media e grande complessità. Ci sono classi per tutte le esigenze quindi è inutile provare a farne un elenco dettagliato e descriverne il funzionamento. Il modo migliore per scoprire lo Zend Framework è invece realizzare con esso una piccola applicazione e quindi in questo tutorial vedremo come costruire un sito web in grado di mostrare delle news, gestite dinamicamente dall’utente, e conservate in un database MySQL.

Presentazione dello Zend Framework

Introduzione Se avete maturato un po' di esperienza in PHP sapete bene come gran parte del codice di un nuovo lavoro può essere ereditato dai precedenti progetti: le funzioni per collegarsi al database, quelle per gestire i template, quelle per l’autenticazione dell’utente, ecc.. Accanto al codice da voi prodotto, forse usate anche diverse librerie di codice realizzate da terzi: Smarty per gestire i template HTML, FPDF per creare PDF, PHPMailer per inviare email complesse, ADODb per interagire con i diversi database, la miriade di classi PEAR, ecc.

Cloaking con PHP

Il cloaking è una pratica messa in atto da molti SEO (search engine optimizers) per migliorare la posizione di un certo sito nelle SERP (i risultati) di un motore di ricerca, in riferimento a certe keywords. La parola “cloaking” significa mascheramento e ben descrive quello che il processo in analisi mira a compiere. In pratica uno script server side (scritto in PHP o altro linguaggio) si occupa di svolgere le seguenti azioni: