Laboratorio di Basi di Dati



Похожие документы
Laboratorio di Basi di Dati e Web

Architettura Model-View-Controller (MVC)

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati

2011 Politecnico di Torino 1

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

AJAX. Riccardo Rosati

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

2011 Politecnico di Torino 1

ITI M. FARADAY. Programmazione a. s

Capitolo 16 I servizi Internet

PHP & MySQL. Giselda De Vita

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()

PHP i5 #3. By SIRI. : accesso adl DB2 IBMi

Connessione con MySQL

Programmazione Orientata agli Oggetti in Linguaggio Java

Basi di dati Basi di dati per bioinformatica

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda)

Un client su arduino invia i dati acquisiti ad un database

L architettura MVC (Model- View-Controller) Introduzione

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

I desiderata La progettazione MVC Organizzazione del codice.

Una metodologia di progettazione di applicazioni web centrate sui dati

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script

Configurazione avanzata di XAMPP

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Verso l architettura MVC-2 PHP: Hypertext Preprocessor

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

WIFILAB ISTRUZIONI PER IL SETUP E L UTILIZZO DEL CLIENT VMWARE HORIZON (SISTEMA OPERATIVO OS X)

1. Schema concettuale della base di dati PROGETTO CONCETTUALE SCHEMA ER

PRIMA PARTE. 2. Modello concettuale DB: Elena Cosentino

WIFILAB ISTRUZIONI PER IL SETUP E L UTILIZZO DEL CLIENT VMWARE HORIZON (SISTEMA OPERATIVO MICROSOFT WINDOWS)

Visualizzazione ordini in MyShopDB

Gestione Orario Lezioni: Schema del Database

Транскрипт:

Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 10

Architettura Model-View-Controller (MVC) L'architettura MVC può essere applicata anche alla tecnologia PHP secondo diversi approcci. In questa esercitazione mostriamo l applicazione dell approccio page-centric. Vedremo quindi come organizzare un insieme di file e classi PHP secondo tale approccio

Approccio Page-centric Logica (Model) Classe php DBMS + PHPBeans Flusso (Controller) Presentazione (View) PHP_1 PHP_n Base di Dati Dominio sviluppatori Java Dominio Web Designer

Approccio Page-centric 1) Richiesta HTTP Logica dell applicazione Livello di controllo e di presentazione Base di dati 3) pg_query() 4) query result resource classe PHP di front end 2) Richiesta dati 5) PHP databeans PHP Page 1 6) HTML

Approccio Page-centric PHP (1) Lettura parametri della richiesta HTTP I parametri vengono caricati in variabili PHP dall array globale $_GET[] Ad esempio, per prelevare il parametro idpersona presenta su una richiesta HTTP di tipo GET e assegnarlo alla variabile $id, procedo come segue: $id = $_GET["idPersona"];

Approccio Page-centric PHP (2) In base ai parametri ricevuti la pagina PHP richiama le funzioni di un istanza della classe DBMS per ottenere i dati sotto forma di array di PHP databean Ad esempio $dbms = new DBMS(); $esami = $dbms->getesami($id);

Approccio Page-centric PHP (2) Classe DBMS require_once( EsamiBean.php'); class DBMS { private $host = "dbserver.scienze.univr.it"; private $user = "userlab00"; private $pass = "zero0"; private $db = "did2013"; private $connection = null; function construct() { $this->connection = pg_connect("host=$this->host dbname=$this->db user=$this->user password=$this->pass");.

Approccio Page-centric PHP (3,4,5) Funzioni della classe DBMS per l interazione con il database function getesami($idper) {... pg_prepare($this->connection, q1, "SELECT insegnamento, voto FROM Esame WHERE id_studente = $1 ); $result = pg_execute($this->connection, q1, array($diper)); $list = array(); while($row = pg_fetch_array($result)) { $es = new EsameBean(); $es->set_insegnamento($row[ insegnamento ]); $es->set_voto($row[ insegnamento ]); $list[] = $es; return $list;

Approccio Page-centric PHP (5) DataBean in PHP (dinamicità) class EsameBean { private $cs_id; private $fields = array();... function construct() { $this->fields[ insegnamento' ] = null; $this->fields[ voto' ] = null;

Approccio Page-centric PHP (5) DataBean in PHP (dinamicità) function call( $method, $args ) { // Metodi SET if ( preg_match( "/set_(.*)/", $method, $found ) ) { if ( array_key_exists( $found[1], $this->fields ) ) { $this->fields[ $found[1] ] = $args[0]; return true; else { if ( strcasecmp( $found[1], "id" ) == 0 ) { $this->cs_id = $args[0]; return true;

Approccio Page-centric PHP (5) DataBean in PHP (dinamicità)... // Metodi GET else if ( preg_match( "/get_(.*)/", $method, $found ) ) { if ( array_key_exists( $found[1], $this->fields ) ) { return $this->fields[ $found[1] ]; else { if ( strcasecmp( $found[1], "id" ) == 0 ) { return $this->cs_id; return false; // end function call // end class

Approccio Page-centric PHP (6) Presentazione dei dati nel file HTML Ad esempio: <ul> <? foreach($esami as $es) {?> <li><b><?=$es->get_insegnamento()?></b></br> <i><?=$es->get_voto()?></i> <??> </ul>

Attivare il server apache con interprete PHP 1. Da console invocare il comando apache 2. Questo aprirà automaticamente: il browser all'indirizzo: http://localhost:8090/ una schermata di Nautilus nella cartella temporanea "/tmp/<matricola>-apache2" contenente: directory conf: contiene i file di configurazione directory log: contiene i file di log di accesso e degli errori directory www: web directory contenete i documenti (php o html) ai quali si può accedere all'indirizzo: http://localhost:8090/nomepagina.php

Esempi da scaricare 1. Scaricare il file: php.zip dalla pagina web del corso. 2. Attivare apache: comando apache 3. Scompattare php.zip nella directory ~/tmp/<matricola>-apache2/www 4. Invocare la pagina Corsi.php. http://localhost:8090/corsi.php

Consegna opzionale Esercitazione 10 Completare i file PHP scaricati per ottenere quanto richiesto nell esercizio 8 per la JSP finale. Inviare via email al docente un file di nome ES10-<matricola>.zip contenente tutti i file dell applicazione sviluppata in PHP (tutti i file) Il messaggio dovrà soddisfare il seguente formato: Oggetto: <Matricola> - Esercitazione 10 Contenuto: <Matricola> - <Cognome> - <Nome> Allegato: file di nome ES10-<Matricola>.zip Il messaggio email va spedito entro le 23.59 del giorno 15 giugno 2013.

Riferimenti http://www.php.net