WordPress e WooCommerce sarebbero nulla senza PHP. Sviluppo e customizzazione non esisterebbero. L’unicità di ogni sito non sarebbe possibile.
Ecco, senza PHP “you go nowhere” e nel talk partiremo letteralmente da zero per poi cercare di capire le basi del PHP e come utilizzarlo per modificare un sito WordPress/WooCommerce.
PHP è difficile solo per ricordarsi il significato dell’acronimo – per il resto è un linguaggio di programmazione divertente, intuitivo e allo stesso tempo… pericoloso. Basta dimenticarsi un punto e virgola e l’intero sito può andare offline
Lo scopo di questo talk sarà convincere i non programmatori a provare a scrivere un paio di righe di PHP anziché scaricare “yet another plugin”. Se ci sono riuscito io che non sono un programmatore…
WordPress e WooCommerce sarebbero nulla senza PHP. Sviluppo e customizzazione non esisterebbero. L’unicità di ogni sito non sarebbe possibile.
Ecco, senza PHP “you go nowhere” e nel talk partiremo letteralmente da zero per poi cercare di capire le basi del PHP e come utilizzarlo per modificare un sito WordPress/WooCommerce.
PHP è difficile solo per ricordarsi il significato dell’acronimo – per il resto è un linguaggio di programmazione divertente, intuitivo e allo stesso tempo… pericoloso. Basta dimenticarsi un punto e virgola e l’intero sito può andare offline
Lo scopo di questo talk sarà convincere i non programmatori a provare a scrivere un paio di righe di PHP anziché scaricare “yet another plugin”. Se ci sono riuscito io che non sono un programmatore…
Con un approccio pratico, e ricco di esempi semplici per illustrare bene i concetti, impara le basi del linguaggio di scripting Bash, ormai divenuto uno standard de facto in termini di scripting di shell (Shell Scripting).
La presentazione si compone di 12 lezioni / capitoli:
1 - Introduzione
2 - Primi passi
3 - Variabili
4 - Array
5 - Aritmetica
6 - Test
7 - Costrutti condizionali
8 - Cicli iterativi
9 - Funzioni
10 - Quoting
11 - Terminare uno script
12 - Debugging
Per un totale di 98 diapositive
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
Talk di Salvatore Rome per il meeting di HTML5 Italy.
Se vi capita di avere fogli di stile disorganizzati, di usare il copia-incolla per ridefinire delle regole CSS, di dover cambiare un colore o un valore con Trova&Sostituisci... LESS è la soluzione.
Scopriremo l'uso delle variabili per definire i colori e le dimensioni principali, i mixin per creare regole complesse e riutilizzarle (come effetti ombra o animazioni), le nested rules per ordinare il codice e le funzioni per i colori.
Inoltre vedremo come sottolineare gli errori di sintassi e come automatizzare la compilazione in file CSS.
Dopo questo tutorial non vorrete più tornare ai CSS!
Videocorso in italiano su Udemy!
https://www.udemy.com/corso-linux-per-sviluppatori-web-lamp-apache-php-mysql/?couponCode=SLIDES10
- Installare un server linux
- Lavorare con la linea di comando
- Gestione gruppi, utenti e permessi
- Bash scripting
- Espressioni regolari
- Apache, NGnix &Https
- Installare PHP & MySql
- Cron e crontab
Con un approccio pratico, e ricco di esempi semplici per illustrare bene i concetti, impara le basi del linguaggio di scripting Bash, ormai divenuto uno standard de facto in termini di scripting di shell (Shell Scripting).
La presentazione si compone di 12 lezioni / capitoli:
1 - Introduzione
2 - Primi passi
3 - Variabili
4 - Array
5 - Aritmetica
6 - Test
7 - Costrutti condizionali
8 - Cicli iterativi
9 - Funzioni
10 - Quoting
11 - Terminare uno script
12 - Debugging
Per un totale di 98 diapositive
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
Talk di Salvatore Rome per il meeting di HTML5 Italy.
Se vi capita di avere fogli di stile disorganizzati, di usare il copia-incolla per ridefinire delle regole CSS, di dover cambiare un colore o un valore con Trova&Sostituisci... LESS è la soluzione.
Scopriremo l'uso delle variabili per definire i colori e le dimensioni principali, i mixin per creare regole complesse e riutilizzarle (come effetti ombra o animazioni), le nested rules per ordinare il codice e le funzioni per i colori.
Inoltre vedremo come sottolineare gli errori di sintassi e come automatizzare la compilazione in file CSS.
Dopo questo tutorial non vorrete più tornare ai CSS!
Videocorso in italiano su Udemy!
https://www.udemy.com/corso-linux-per-sviluppatori-web-lamp-apache-php-mysql/?couponCode=SLIDES10
- Installare un server linux
- Lavorare con la linea di comando
- Gestione gruppi, utenti e permessi
- Bash scripting
- Espressioni regolari
- Apache, NGnix &Https
- Installare PHP & MySql
- Cron e crontab
Oggi possiamo finalmente lasciarci alle spalle l’idea di dover utilizzare PHP per lo sviluppo web. Durante la presentazione verrà spiegato un semplice workflow che utilizzo per lavorare con Python, Flask, SQLite, Apache e Git per ridurre i bug, semplificare il codice e ottimizzare i tempi di deployment.
Questo intervento ha fatto parte del Linux Day 2017.
Il video è disponibile qui: https://youtu.be/0Rwd75iHZN4
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...Fulvio Corno
Master: Amministratore Linux - Livello Avanzato
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...Codemotion
Nonostante siano disponibili maree di linguaggi per programmare ha senso realizzare un proprio linguaggio per risolvere specifici problemi o per utilizzarlo con determinati ambienti e tecnologie?
Partendo dall'analisi della realizzazione di un vero e proprio linguaggio interpretato con sintassi in dialetto C/PHP si cercherà di illustrare se le metodologie, gli scopi e il prodotto finale hanno un senso pratico e migliorativo oppure la realizzazione di tali ambienti non sia più necessari.
"Alla ricerca della formula magica". Presentazione usata per il ciclo di webinar su traduzione e adattamento di siti web per AITI Emilia Romagna, novembre-dicembre 2016.
1. PHP5
prima parte - i fondamenti del linguaggio
Gianfranco Fedele
Analista programmatore
gianfrasoft@gmail.com
gianfrasoft.wordpress.com
www.linkedin.com/in/gianfrasoft
2. PHP5: Introduzione a PHP
• È un linguaggio di programmazione di tipo scripting
(come, Bash, Javascript, Perl, …), ed è caratterizzato da:
– Codice iterpretato (non compilato).
– Tipizzazione debole (casting implicito).
– È HTML embedded.
– È un linguaggio procedurale con estensioni ad oggetti.
• È un linguaggio di programmazione utilizzato per lo
sviluppo di pagine web dinamiche “lato server”.
gianfrasoft.wordpress.com - 2008
3. PHP5: Paradigma Web con PHP / 1
Web Server
Browser client page
HTTP
Server
Richiesta
GET/POST
PHP
files
DB
• Il client richiede al server di elaborare una pagina HTML contenente script
PHP.
• L'esecuzione ha come risultato una pagina di solo HTML.
• Il server invia la pagina ottenuta al browser per la visualizzazione.
gianfrasoft.wordpress.com - 2008
4. PHP5: Paradigma Web con PHP / 2
• Dinamicità “lato client”
– Presentazione dinamica: interazione con i contenuti ricevuti dal server.
– Tecnologie:
• Javascript + DOM.
• Applet Java.
• Flash.
• ...
gianfrasoft.wordpress.com - 2008
5. PHP5: Paradigma Web con PHP / 3
• Dinamicità “lato server”
– Possibilità di generare tutti i contenuti dinamicamente
• prelevando informazioni da diverse sorgenti (file, DB, Internet, ...).
• processando testo e immagini.
• gestendo profili e sessioni.
• ...
– Tecnologie:
• Common Gateway Interface (CGI).
• Scriptlet (PHP, Perl, ASP, JSP, …).
• Linguaggi HTML-Embedded (PHP, ASP, JSP)
gianfrasoft.wordpress.com - 2008
6. PHP5: Il Web 2.0 - cenni
• Ajax - Asynchronous JavaScript and XML
utilizza una combinazione di:
– HTML (o XHTML) e CSS per il markup e lo stile;
– DOM (Document Object Model) manipolato attraverso JavaScript.
– l'oggetto XMLHttpRequest per l'interscambio asincrono dei dati tra il browser
dell'utente e il web server.
– XML come formato di scambio dei dati, anche se di fatto qualunque formato può
essere utilizzato.
– PHP o qualsiasi altra tecnologia per il processamento dei dati lato server
gianfrasoft.wordpress.com - 2008
7. PHP5: Caratteristiche di PHP
• Punti di forza del PHP:
– È semplice (HTML embedded).
– È open source (sotto licenza GPL).
– È caratterizzato da buone prestazioni
– Grazie a Zend Engine 2 introduce un nuovo modello di programmazione ad
oggetti, per l’interazione con file XML e per il supporto dei Web Services
– È fornito di molte librerie per:
• Processamento immagini (GD)
• Connessione ai database (MySQL, PostgreSQL, Oracle, ...)
• Parser XML anche per processori XSLT
• Compressione dati
• SSL
• Generazione file PDF
• Web Services (SOAP, XML-RPC, ...)
• ...
– Sono disponibili archivi di estensioni e librerie PHP (PEAR, …)
– Consente la realizzazione di applicazioni aziendali
gianfrasoft.wordpress.com - 2008
8. PHP5: phpinfo()
• Per verificare che PHP sia correttamente installato e funzionante sul server:
– Interrogare un semplice script contentente:
<?php phpinfo() ?>
– Questo script visualizza molte informazioni sullo stato corrente del PHP Queste
includono informazioni sulle opzioni di compilazione del PHP, sui moduli, la
versione di PHP, informazioni sul server e sull'ambiente (se compilato come
modulo), l'ambiente PHP, la versione di OS, percorsi, valori delle configurazioni
base e attuali, intestazioni HTTP e la licenza del PHP.
– Dato che ogni sistema ha una configurazione differente, phpinfo() viene
comunemente utilizzato per verificare le impostazioni di configurazione e le
variabili predefinite disponibili in un dato sistema.
– phpinfo() è utile come strumento di debug poichè visualizza tutti i dati EGPCS
(Environment, GET, POST, Cookie, Server).
gianfrasoft.wordpress.com - 2008
9. PHP5: Sintassi
• Per inserire il codice PHP all’interno delle pagine web (HTML) si utilizzano
speciali tag:
– <?php ... ?> (oppure <? ... ?>) (il più usato)
– <% ... %> (da abilitare in php.ini)
– <SCRIPT LANGUAGE="PHP"> ... </SCRIPT>
(quest’ultimo può confondere poiché è utilizzato per i linguaggi client-side!)
<html>
<head>
<title>Ciao mondo!</title>
</head>
<body>
<?php
// Questo è codice PHP racchiuso tra i tag "classici"
print "<hl>Ciao mondo!</hl>";
?>
</body>
</html>
gianfrasoft.wordpress.com - 2008
10. PHP5: Commenti
• I commenti sono indispensabili per una programmazione chiara degli script
PHP:
<?php
/*
* Questo è un commento stile C
*/
// Questo è un commento
// stile C++
# Questo è un commento
# stile Perl
?>
gianfrasoft.wordpress.com - 2008
11. PHP5: Variabili / 1
• In PHP il nome di una variabile può contenere solo caratteri alfanumerici e
l’underscore (_).
• L’assegnazione del valore ad una variabile avviene mediante l’operatore =.
• Le variabili vengono generate automaticamente nell’ambito della prima
assegnazione (dichiarazione implicita).
• In PHP valgono le regole della tipizzazione debole, ovvero il tipo della variabile
viene determinato alla prima assegnazione di un valore, oppure mediante
conversioni implicite, conversioni esplicite o casting.
// Assegnazione di una viariabile
$variabile = "valore";
print($variabile) // stampa “valore" // Una variabile dinamica
$tavola = "bicchiere";
// Casting esplicito $$tavola = "acqua";
print($bicchiere); // stampa "acqua"
$variabile = "5";
print((int)$variabile) // stampa 5
gianfrasoft.wordpress.com - 2008
12. PHP5: Variabili / 2
• La funzione isset(var) restituisce vero (TRUE) se la variabile esiste, falso
(FALSE) in caso contrario.
• La funzione empty(var) restituisce TRUE se la variabile ha valore nullo,
FALSE in caso contrario.
• L’istruzione uset(var) distrugge la variabile specificata.
// $n non esiste
if (!isset($n)) { print '$n non esiste <br>'; }
if (empty($n)) { print '$n è vuota <br>'; }
$m = $n + 5; // $m vale 5
print '$m vale '.$m.' <br>';
// ora $n esiste
$n = 1;
if (isset($n)) { print 'ora $n esiste <br>'; }
if (empty($n)) { print 'ma $n è ancora vuota <br>'; }
unset($n);
// ora $n NON esiste
if (!isset($n)) { print 'ora $n NON esiste <br>'; }
gianfrasoft.wordpress.com - 2008
13. PHP5: Costanti
• Le costanti vengono impostate manualmente usando l'istruzione define().
• Per controllare che una costante sia definita effettivamente è necessario
utilizzare la funzione defined(), considerando il solo argomento che identifica il
nome della costante da controllare.
// definisco una costante
define("PROVA", "Valore della costante PROVA.");
if (defined("PROVA"))
print PROVA;
gianfrasoft.wordpress.com - 2008
14. PHP5: Tipi di dati / 1
• I tipi in PHP si dividono in:
– Tipi semplici: booleani, interi, numeri a virgola mobile, stringhe.
– Tipi composti: array, oggetti.
$a = 2.34;
– Le variabili non vanno dichiarate $b = "Ciao mondo";
$c = 3;
– La conversione di tipo è
$pigreco = 3 + 0.1415;
automatica
– I tipi vengono assegnati per
$sub = substr(20340, 2, 2);
contesto. $sub = $sub + 5;
print("sub vale $sub");
// output: sub vale 39
gianfrasoft.wordpress.com - 2008
15. PHP5: Tipi di dati / 2
• Per determinare il tipo di una variabile:
– gettype(var) restituisce una descrizione del tipo della variabile.
– Per ogni tipo è definita una funzione predicato che restituisce TRUE se
l'argomento è del tipo in questione:
• is_bool
• is_int
• is_string
• …
La lista completa è al sito: http://hu.php.net/manual/it/ref.var.php
– Queste funzioni sono molto utili per un efficace filtraggio dell’input ai fini della
gestione della sicurezza.
gianfrasoft.wordpress.com - 2008
16. PHP5: Tipo boolean
• Una variabile booleana può assumere solo due valori di verità: TRUE e
FALSE (valori costanti).
// Creo due variabili
$a = TRUE;
$b = 75;
// L'istruzione seguente stampa "$a è bool"
if (is_bool($a)) echo '$a è bool ';
else echo '$a non è bool ';
// Questa invece stampa "$b non è bool"
if (is_bool($b)) echo '$b è bool ';
else echo '$b non è bool ';
gianfrasoft.wordpress.com - 2008
17. PHP5: Tipo stringa
• Una stringa, è una sequenza di caratteri.
• Una lista di tutte le funzioni per l’analisi e la manipolazione delle stringhe in
PHP è alla pagina:
http://it2.php.net/manual/it/ref.strings.php
in particolare la funzione htmlspecialchars() è molto utile per il filtraggio
dell’input in ambito di gestione della sicurezza delle pagine PHP.
// Una stringa costante
$mio_nome = "Gianfranco";
// Una stringa vuota
$vuota = "";
gianfrasoft.wordpress.com - 2008
18. PHP5: Interpolazione
• Le stringhe racchiuse da apici singoli rappresentano esattamente ciò che
esse contengono.
• Le stringhe fra apici doppi attuano una interpolazione dei dati:
– I nomi delle variabili che cominciano per $ vengono sostituite con il valore delle
variabili dopo che questo è stato convertito in tipo stringa.
– Sequenze di caratteri che cominciano con il backslash (), come n, t, r, …
vengono sostituite con i corrispondenti caratteri speciali.
– Sequenze di caratteri $, " e causano rispettivamente la stampa dei caratteri
$, " e .
$a = “primo"; primo,,“secondo"+2.2
$b = “secondo";
$c = .22e+1; // notazione esponenziale
print ("$a,$terzo,"$b"+$c");
gianfrasoft.wordpress.com - 2008
19. PHP5: Tipo array / 1
• Un array è una collezione di valori individuati da un nome e da un indice.
• L'indice può essere un numero intero ma anche una stringa: nel secondo
caso l'array si definisce associativo.
• in PHP gli elementi di un array possono essere di tipi diversi, anche array.
Un array che contiene altri array è difatti un array multidimensionale.
gianfrasoft.wordpress.com - 2008
20. PHP5: Tipo array / 2
• Un array può essere creato utilizzando il costrutto array() oppure lo si può
creare implicitamente, aggiungendovi elementi.
$lista = array("mele", "pere", "pane", "latte");
$lista[0] = "mele"; $lista[] = "mele";
$lista[1] = "pere"; $lista[] = "pere";
$lista[2] = "pane"; $lista[] = "pane";
$lista[3] = "latte"; $lista[] = "latte";
• Nel caso di un array associativo:
$lista_della_spesa = array("primo" => "pasta",
"secondo" => "carne",
"contorno" => "insalata"); // nota la variabile autoesplicativa
$lista_della_spesa["primo"] = "pasta";
$lista_della_spesa["secondo"] = "carne";
$lista_della_spesa["contorno"] = "insalata";
gianfrasoft.wordpress.com - 2008
21. PHP5: Array multidimensionali
• Un array non è vincolato a contenere informazioni dello stesso tipo. Neppure
se si tratta di un array multidimensionale.
• L’accesso ai dati di un array multidimensionale si attua indicando in sequenza
gli indici dell’array principale e dell’array interno: ciò ricorsivamente, per quanti
possono essere i livelli di annidamento dell’array.
// Un array di quattro elementi di tipo diverso
$anagrafici = array("Gianfranco
Fedele", TRUE, array(5, 3, 1973));
// Questa istruzione stampa "Gianfranco Fedele";
echo $anagrafici[0];
echo "<br>";
// Questa stampa il numero 1973
echo $anagrafici[2][2];
gianfrasoft.wordpress.com - 2008
22. PHP5: Tipo object
• PHP supporta il paradigma di programmazione a oggetti mediante il tipo
object per le istanze di classi PHP.
– La funzione is_object(var), restituisce TRUE se è un oggetto e FALSE in
caso contrario.
– La funzione gettype(var), data una variabile di tipo object restituisce la
stringa object.
• PHP è un linguaggio con estensioni per la programmazione ad oggetti, ma
non è un linguaggio ad oggetti “puro” come Java.
gianfrasoft.wordpress.com - 2008
23. PHP5: Casting e conversione
• La conversione dei tipi in PHP nella maggior parte dei casi avviene in modo
implicito e trasparente: l'interprete PHP, in base al contesto, stabilisce il tipo
da assegnare alle variabili.
• È comunque possibile operare delle conversioni esplicite utilizzando le
funzioni (intval(), strval(), …) oppure mediante il casting:
$a = 10; // $a e' una variabile intera e vale 10
$b = $a + 1.5; // $b e' un numero in virgola mobile (11.5)
$c = "5+$a"; // $c e' una stringa ("5+10")
echo (int)$b; // Adesso $b è di tipo int e vale 11 (parte intera di $b)
gianfrasoft.wordpress.com - 2008
24. PHP5: Operatori aritmetici
• Sono gli operatori delle operazioni aritmetiche basilari.
Esempio Risultato...
$a + $b La somma di $a e $b
$a - $b La differenza fra $a e $b
$a * $b Il prodotto di $a e $b
$a / $b Il rapporto tra $a e $b
$a % $b Il resto della divisione di $a per $b
// Divisione
$dividendo = 15;
$divisore = 2;
// $rapporto vale 7.5
$rapporto = $dividendo / $divisore;
// $resto vale 1;
$resto = $dividendo % $divisore;
gianfrasoft.wordpress.com - 2008
25. PHP5: Concatenazione di stringhe
• L’operatore di concatenazione delle stringhe è “.“
// nome e cognome
$nome = "Gianfranco";
$cognome = "Fedele";
// Concatenazione
$nome_completo = $nome . " " . $cognome;
• Lo stesso risultato è possibile mediante l’interpolazione nelle stringhe:
$nome = "Gianfranco";
$cognome = "Fedele";
$nome_completo = "$nome $cognome";
gianfrasoft.wordpress.com - 2008
26. PHP5: Operatori di confronto
• Tra gli operatori di confronto classici, si noti la differenza tra gli operatori:
== e ===.
Esempio Restituisce TRUE se...
$a == $b $a e $b sono uguali (stesso valore)
$a === $b $a e $b sono uguali (stesso valore e tipo)
$a != $b $a e $b sono diversi
$a < $b $a è minore di $b
$a <= $b $a è minore o uguale di $b
$a > $b $a è maggiore di $b
$a >= $b $a è maggiore o uguale di $b
gianfrasoft.wordpress.com - 2008
27. PHP5: Operatori logici
• Gli operatori logici consentono di legare tra loro diverse condizioni,
costruendone di nuove.
Operatore Esempio Restituisce TRUE se…
not !$a $a è falsa
and $a && $b ($a and $b ) $a e $b sono entrambe vere
or $a || $b ($a or $b ) almeno una tra $a e $b è vera
xor $a xor $b solo una tra $a e $b è vera
gianfrasoft.wordpress.com - 2008
28. PHP5: Operatori combinati
• L‘opertore = non è l’unico operatore di assegnazione disponibile in PHP.
$somma = $a + $b;
$frase = "La somma e' pari a $somma";
• Esistono operatori di assegnazione detti operatori combinati:
Esempio Risultato Esempio Risultato
$a += $b $a = $a + $b $n++ incrementa (decrementa) $n
$a -= $b $a = $a - $b $n-- di uno e ritorna il valore
$a *= $b $a = $a * $b ++$n ritorna $n e incrementa
$a /= $b $a = $a / $b --$n (decrementa) di uno
$a %= $b $a = $a % $b
$a .= $b $a = $a . $b
gianfrasoft.wordpress.com - 2008
29. PHP5
prima parte - FINE
Gianfranco Fedele
Analista programmatore
gianfrasoft@gmail.com
gianfrasoft.wordpress.com
www.linkedin.com/in/gianfrasoft