Ecco giunti all'ultima tappa del percorso introduttivo su HTML, PHP e gestione di dati su MySQL:
L'accesso ai dati e la visualizzazione delle informazioni contenute nel database tramite pagine dinamiche scritte in PHP.
Come portare il profiler di symfony2 in drupal8Luca Lusso
Molti progetti PHP open source hanno adottato Symfony2 come base per la loro prossima versione, tra questi c'è anche il CMS Drupal (http://drupal.org). In questo talk vedremo come scrivere un modulo per Drupal8 in modo da sfruttare il più possibile il suo nuovo motore Symfony2, dall'integrazione con il service container alla gestione degli eventi, dal routing a Twig. Verrà usato come esempio il modulo webprofiler (http://drupal.org/project/webprofiler) per dimostrare come un bundle per Symfony2 possa essere trasformato in un modulo per Drupal8 e integrato facilmente nel sistema.
Come portare il profiler di symfony2 in drupal8Luca Lusso
Molti progetti PHP open source hanno adottato Symfony2 come base per la loro prossima versione, tra questi c'è anche il CMS Drupal (http://drupal.org). In questo talk vedremo come scrivere un modulo per Drupal8 in modo da sfruttare il più possibile il suo nuovo motore Symfony2, dall'integrazione con il service container alla gestione degli eventi, dal routing a Twig. Verrà usato come esempio il modulo webprofiler (http://drupal.org/project/webprofiler) per dimostrare come un bundle per Symfony2 possa essere trasformato in un modulo per Drupal8 e integrato facilmente nel sistema.
Coding a php ajax json application to connect a mysql db.
Sviluppare una applicazione web con php e json per accedere ad un db mysql. L'anticamera per poi realizzare app gestionali.
Lezione WordPress Università degli Studi di Milano: Installazione e Gestionealessandro gasparotto
Slide della lezione di WordPress fatta presso l'Università degli Studi di Milano. Nelle slide viene presentato WordPress, le potenzialità, l'installazione in locale e remoto e l'intera gestione del sistema. La guida è stata sviluppata e destinata ad utenti alla prime armi con questo potente strumento.
Coding a php ajax json application to connect a mysql db.
Sviluppare una applicazione web con php e json per accedere ad un db mysql. L'anticamera per poi realizzare app gestionali.
Lezione WordPress Università degli Studi di Milano: Installazione e Gestionealessandro gasparotto
Slide della lezione di WordPress fatta presso l'Università degli Studi di Milano. Nelle slide viene presentato WordPress, le potenzialità, l'installazione in locale e remoto e l'intera gestione del sistema. La guida è stata sviluppata e destinata ad utenti alla prime armi con questo potente strumento.
The document provides credentials and experience for Andrea Portante including:
1. Over 25 years of experience in top marketing, general management and consulting positions.
2. Educational background includes a degree in Economics from University of Bologna and an MS in Management from MIT Sloan School of Management.
3. Previous roles include positions at McKinsey, Value Partners Management Consulting, Abril Group, and various roles at RAI including roles in marketing, new media, rights sales and more.
4. Areas of expertise include marketing strategy, media strategy, social media marketing, promotions, event management, licensing, direct marketing, sponsorships, and digital media.
5. Extensive experience
Hai mai pensato a cosa succede quando una richiesta HTTP arriva al tuo sito Drupal? Come Drupal trova il codice corretto da eseguire? Quali parti di una pagina provengono dalla cache e quali sono costruite da zero? Quante e quali query vengono eseguite sul database? E, perché no, quanto tempo e quanto memoria richiede convertire la richiesta in una risposta?
Che tu sia una persona che sviluppa moduli o solo curiosa, le risposte a queste domande ti aiuteranno a comprendere meglio come funziona internamente il tuo CMS preferito (perché se non lo è già, lo diventerà).
Per fare questo useremo il modulo Webprofiler, che ci aiuterà a capire come le varie componenti di Drupal interagiscono per convertire una richiesta in una risposta. Webprofiler raccoglie dati durante la costruzione di ogni pagina del sito e ci permette di esplorare facilmente cosa succede all’interno di Drupal.
Seguiremo il percorso di una richiesta iniziando dai middleware, passeremo dal routing al controller per finire a Twig. Scopriremo come i servizi forniscono funzionalità e come gli eventi danno la possibilità (o l’opportunità) di scrivere codice disaccoppiato. Il tutto senza perdere di vista le performance e tenendo un occhio sulle risorse, il tempo, le cache e le query.
Programmazione web libera dai frameworkFrancesca1980
Un nuovo progetto web parte quasi sempre con la domanda "che framework usiamo?" Diamo per scontato che non si possa sviluppare per il web senza fare uso di framework. Ma che succederebbe se decidessimo di sviluppare senza framework? Potremmo ottenere maggiore controllo e qualità, meno rischi e meno costi. Serve "solo" la volontà di imparare a programmare bene. Darò alcune dritte con Java e TDD.
Fare con Zend Framework 2 ciò che facevo con ZF1Steve Maraspin
Introduzione a Zend Framework 2 per chi proviene da Zend Framework 1, tenuta allo Zend Framework Day di Milano del 01/02/2013. Introduzione alle nuove caratteristiche e pattern architetturali di ZF2
Zend Framework 2 non è l'evoluzione di ZF, ma un progetto nuovo: il codice è stato riscritto e poche sono le parti in comune con la versione precedente. Lo sviluppatore abituato a ZF1 non ha vita facile, ed è fondato il timore di dover imparare tutto da capo. In questo talk vediamo come cambiare le vecchie abitudini di sviluppatori ZF1, per sfruttare al meglio le potenzialità del nuovo strumento. Attraverso esempi concreti, in cui vedremo all'opera i nuovi pattern e le best practice, mostriamo come - partendo con il piede giusto - il passaggio a ZF2 possa essere meno traumatico del previsto. Il talk è orientato soprattutto a chi già conosce ZF1, ma gli argomenti affrontati possono essere utili anche a chi si avvicina a ZF per la prima volta.
The Hitchhiker's Guide to testable code: semplici regole per scrivere codice ...Davide Cerbo
Nicola e Davide vi guideranno in uno spericolato refactoring di un codice poco gradevole alla vista di qualsiasi buon programmatore con lo scopo di illustrare i principali problemi che normalmente affligono il nostro povero codice rendendo difficile la scrittura di fantastici e utili test unitari. Verranno spiegati i principi da rispettare per ottenere un codice facile da testare quali: dependency injection, law of demeter, uso del pattern factory e builder, corretta scrittura dei costruttori, come scovare nomi pericolosi. Ed illustrate le pratiche da evitare: pattern singleton, stati globali, service locator, scrittura di classi con troppa responsabilità. Alla fine del talk verranno presentati alcuni link, software e libri utili nella scrittura di test unitari.
SaaS con Symfony2 un caso *molto* concreto di applicazione multitenantTassi Francesco
Sogni di sviluppare il tuo SaaS, di poterlo gestire, curare, evolvere. Speri di attrarre nuovi utenti con funzionalità innovative, di offrire un servizio veloce e puntuale. Finalmente ti puoi concentrare sulla qualità del tuo prodotto. Poi una mattina ti svegli, hai un database da 50GB, modificare una colonna richiede 8 ore e ti ritrovi in trappola. Gioie e dolori delle applicazioni multi-tenant. In questo talk analizzeremo perché e come abbiamo suddiviso il database di un SaaS da circa 1 milione di utenti.
> Vedremo come aggiungere un parametro di selezione del db a tutti i comandi della console, come eseguire comandi in parallelo per ridurre i tempi di manutenzione, come aggiungere info di debug utilizzando gli eventi del framework, come gestire il caricamento delle fixtures, quali idee si sono rivelate vincenti e quali no.
Dopo tre anni di attività per gestire una bottega del commercio equo e solidale, abbiamo deciso, come associazione, di fare un resoconto del lavoro fatto. A futura memoria, se puo' servire!
Ovviamente non c'è tutto.
Esercizio di traduzione di diagramma a blocchi.
Argomenti
- Dichiarazione variabili
- Struttura condizionale istruzione SE
- Ciclo, istruzione Do LOOP
- Input e output
-
1. PHP e MYSQL
Lo so, adesso non vedete l'ora
di sviluppare una pagina WEB
che visualizza l'elenco dei libri
della biblioteca.
Stefano Floris, Realizzare programmi gestionali in ambiente
Versione fabbraio 2012a WEB con HTML e PHP
Pubblicato su
www.troppocurioso.altervista.org
2. Questa opera è sotto licenza
creativa (di tipo copyleft)
Attribuzione-Non commerciale-
Condividi allo stesso modo Generico.
Per vedere una copia del testo della licenza visita il sito
http://www.creativecommons.it/Licenze
Stefano Floris, 2011
www.troppocurioso.altervista.org
3. PHP e MYSQL
Prendete nota delle
funzioni PHP che
imparerete ad usare.
4. PHP e MYSQL
Prendete nota delle
funzioni PHP che
imparerete ad usare.
A proposito, sapete cosa
sono le funzioni?.
5. PHP e MYSQL
y=f(x)
Esatto, avete capito bene. Il
concetto è mutuato dalla
matematica.
6. PHP e MYSQL
y=f(x)
Esatto, avete capito bene. Il
concetto è mutuato dalla
matematica.
f è la funzione.
7. PHP e MYSQL
Piu' semplicemente vi dirò
che una funzione è quasi
come un comando.
8. PHP e MYSQL
Piu' semplicemente vi dirò
che una funzione è quasi
come un comando.
Voi, per esempio, se siete
arrivati fin qui conoscete
sicuramente i comandi echo, if,
for ecc. ecc.
9. PHP e MYSQL
Ecco, la funzione, rispetto al
comando produce un risultato che
viene generalmente salvato in
una variabile.
10. PHP e MYSQL
Ecco, la funzione, rispetto al
comando produce un risultato che
viene generalmente salvato in una
variabile.
Piu' precisamente si dice che
la funzione assume un
valore (che può essere
salvato in una variabile).
11. PHP e MYSQL
Ecco un comando e una
funzione a confronto. echo
è un comando, pow una
funzione.
// Comando:
Echo “benvenuto nel mio sito!”;
// Funzione:
$potenza = pow($valore,2);
12. Per accedere a
MYSQL e poterlo
interrogare, PHP e MYSQL
PHP mette a
// Per connettersi a MySQL
disposizione una
// mysqli_connect()
sequenza di
//
funzioni.
// Per aprire un database specifico
// mysqli_select_db()
Vi elenco qui le
piu' importanti. // Per lanciare un comando SQL
// mysqli_query()
Prendete nota:
// Per prendere i dati del record
// corrente e portarli in un
// vettore
// mysqli_fetch_array()
// Per liberare le memoria
// mysqli_free_resul()
// Per chiudere la connessione MySQL
// mysqli_close()
13. PHP e MYSQL
Vediamo adesso come poter usare
le funzioni elencate.
Le prenderemo in esame una per
volta in versione piu' semplificata
per noi.
Se desiderate vedere l'elenco
completo di comandi e funzioni
PHP e tutti i parametri che le
funzioni ricevono fate riferimento
al manuale on line.
http://it2.php.net/manual
14. PHP e MYSQL
Partiamo dalla
prima da usare
// Per connettersi a MySQL.
// mysqli_connect(<server>,<utente>,<password>,<nomedb>)
//
// La funzione riceve quattro parametri:
// <server> → l'indirizzo del server (p.e 172.16.0.24)
// <utente> → il nome dell'utente registrato su MySQL
// <password> → la password associata all'utente
// <nomedb> → il nome del database da usare
// La funzione restituisce:
// a) FALSE (valore di tipo boolean) se la cvonnessione
// non è avvenuta correttamente
// (server irraggiungibile, utente e
// password errati o altri problemi)
// b) un valore numerico univoco della connessione
15. PHP e MYSQL
...$db è la variabile che uso per
salvare il risultato della chiamata
alla funzione...
// *****************************************************
// Imposto le variabili che indicano i
// parametri del database
// *****************************************************
$db_host = "172.16.0.13"; // Server MySQL
$db_user = "baldassini"; // Nome utente
$db_password = "baldassini"; // Password
$db_name = "baldassini"; // Nome del database
// ****************************************************
// Connessione al motore DataBase usando le variabili
// impostate sopra
// e la funzione di php mysqli_connect()
//
*******************************************************
$db = mysqli_connect($db_host, $db_user, $db_password);
16. PHP e MYSQL
...$db è la variabile che uso per
salvare il risultato della chiamata
alla funzione...
// ******************************************************
// La variabile $db è utilizzata per verificare
// l'esito della connessione
// La funzione die interrompe la procedura
// ******************************************************
if ($db == FALSE)
{
die ("Errore nella connessione. Verificare i parametri
di accesso");
}
echo "connesione a MYSQL avvenuta <BR>";
17. PHP e MYSQL
Una volta stabilita la connessione è
necessario aprire il database scelto.
// Per connettersi a MySQL.
// mysqli_select_db(<idconnessione>,<nomedatabase>)
//
// La funzione riceve due parametri:
// <idconessione> → il codice della connessione
// ricevuto dalla funzione
// mysqli_connect
//
// <nomedatabase> → il nome del db da usare
//
// La funzione restituisce:
// a) FALSE (valore di tipo boolean) se l'apertura
// del db non è andata in porto
// b) TRUE (valore di tipo boolean) se l'apertura
// è andata in porto correttamente
18. PHP e MYSQL
In questo caso non salvo il valore della funzione (perché
non mi serve successivamente) e controllo l'esito
dell'operazione direttamente con la se.
// ******************************************************
// Mi collego al database che mi interessa
// con la funzione mysqli_select_db() che restituisce
// un valore boolean
// vero = connessione avvenuta
// falso = connessione con problemi
// ******************************************************
if ( mysqli_select_db($db, $db_name) == FALSE)
{
die ("Errore nella selezione del database. Verificare i
parametri");
}
echo "<BR>";
echo "fatta connessione db <BR>";
19. PHP e MYSQL
Notate il fatto che la variabile
$db, viene usata d'ora in poi
per tutte le chiamate alle altre
funzioni...
...
if ( mysqli_select_db($db, $db_name) == FALSE)
..
$db serve infatti ad
indicare quale
connessione al
DBMS utilizzare.
20. PHP e MYSQL
Adesso serve il comando SQL da inviare al DBMS. Scrivo
il comando come testo e lo salvo in una variabile (qui
chiamata $query)
// ******************************************************
// Desidero recuperare i dati da una tabella,
// uso la SELECT
// per farlo costruistro' il comando e lo metto in
// una variabile di stringa
//
// ******************************************************
$query = "SELECT * FROM FORNITORI";
21. PHP e MYSQL
Il comando SQL salvato in una variabile viene inviato alla
funzione mysqli_query che ha lo scopo di mandare il
comando al DBMS chiedendogli di eseguirlo.
// ******************************************************
// Lancio la query con la funziona PHP mysqli_query()
// che chiede due parametri
// 1)il primo è la variabile di connessione al database,
// 2)il secondo la stringa del comando sql.
//
// La funzione restituisce un risultato che salvo
// in una variabile che
// utilizzo per verificare se tutto è andato
// come mi aspettavo
// Se result vale false, allora non ho ottenuto risultati
// ******************************************************
$result = mysqli_query($db, $query);
if ($result) == FALSE {
die ("nessun dato in archivio");
}
22. PHP e MYSQL
Il risultato del comando SELECT è come un foglio
elettronico: un insieme di righe e colonne. E' salvato in una
variabile di tipo speciale (array) a cui abbiamo dato il nome
$result.
// ******************************************************
// Adesso costruisco una tabella (<TABLE>) delle
// dimensioni giuste per ospitare i dati ricevuti
//
// PHP ha la funzione mysqli_fetch_array() che serve
// per leggere il record corrente
// Quando è a fine file restituisce false
// ******************************************************
echo "<BR>";
echo "<TABLE BORDER=1>";
23. PHP e MYSQL
$result contiene dunque una tabella (recordset che si
scorre riga per riga). mysqli_fetch_array è la funzione
che scorre il recordset, restituisce il record corrente e
sposta il puntatore al record successivo.
// Ciclo finchè è vero, cioè finché ci sono record
while ($record = mysqli_fetch_array($result))
{
echo "<TR>";
// Output del primo campo del record corrente
echo "<TD>";
echo "$record[0] <BR>";
echo "</TD>";
// Output del secondo campo del record corrente
echo "<TD> $record[1] <BR> </TD>";
echo "</TR>";
}
echo "</TABLE";
24. PHP e MYSQL
$record è invece una variabile di tipo array che contiene
tutti i campi del record corrente.Per poter utilizzare il
contenuto occorre indicare la posizione nel vettore. La
prima posizione (0) è il contenuto del primo campo.
// Ciclo finchè è vero, cioè finché ci sono record
while ($record = mysqli_fetch_array($result))
{
echo "<TR>";
// Output del primo campo del record corrente
echo "<TD>";
echo "$record[0] <BR>";
echo "</TD>";
// Output del secondo campo del record corrente
echo "<TD> $record[1] <BR> </TD>";
echo "</TR>";
}
echo "</TABLE";
25. PHP e MYSQL
Potevo scrivere anche così:
// Ciclo finchè è vero, cioè finché ci sono record
while ($record = mysqli_fetch_array($result)== TRUE)
{
echo "<TR>";
// Output del primo campo del record corrente
echo "<TD>";
echo "$record[0] <BR>";
echo "</TD>";
// Output del secondo campo del record corrente
echo "<TD> $record[1] <BR> </TD>";
echo "</TR>";
}
echo "</TABLE";
26. PHP e MYSQL
Terminato l'output del risultato della query (comando SQL)
libero la memoria ($result) e chiudo le connessioni con il
DBMS.
// Distrugge il record set
// e libera la memoria utilizzata per gestirlo
mysqli_free_result($result);
// Chiude la connessione
mysqli_close($db);
?>
</body>
</html>