25. Composer

Andrea Pastore 27/09/2020 0

Composer è un gestore di pacchetti per PHP. È nato nel 2015 e da allora si è imposto come lo standard per la gestione delle dipendenze.

Scaricare Composer

Per scaricare Composer visitare il sito https://getcomposer.org/ e a seconda del sistema operativo che avete avrete una diversa procedura di installazione.

Il file composer.json

Il file composer.json contiene tutte le dipendenze per gestire il nostro progetto. Quando dobbiamo utilizzare una libreria esterna ci basterà inserirla in questo file e automaticamente Composer la scaricherà per noi.

Esempio di composer.json :

{

    "require": {

        "monolog/monolog": "dev- master#2eb0c0978d290a1c45346a1955188929cb4e5db7",

        "acme/foo": "1.0.x-dev#abc123"

    },

    "autoload": {

        "psr-4": {

            "Monolog\\": "src/",

            "Vendor\\Namespace\\": ""

        }

    }
Potrebbero interessarti anche...

Andrea Pastore 26/09/2020

8. Iterazioni

Il costrutto for

Quando programmiamo ci può capitare di dover ripetere più volte la stessa operazione, ad esempio si prenda in esame il seguente codice:

echo “Utente  1”

echo “Utente  2”

echo “Utente  3”

echo “Utente  4”

echo “Utente  5”

questa è un’operazione ripetitiva: stiamo scrivendo sempre la stessa cosa, cambia solo il numero finale. Per questo genere di operazioni possiamo utilizzare un costrutto che ci viene messo a disposizione dal PHP: il costruttor for. Lo stesso codice lo possiamo scrivere in questo modo:

for($i = 1; $i<6;$i++) {

echo “Utente $i”;

}

Analizziamo meglio il ciclo for: dopo la parola chiave for ci sono delle parentesi tonde che contengono i parametri necessari alla sua esecuzione, separati dal simbolo “;”:

  • variabile contatore e il suo valore iniziale, nell’esempio sopra rappresentato dalla stringa: $i = 0
  • valore limite della variabile contatore, nell’esempio sopra è $i<6
  • quantità da incrementare ad ogni iterazione, nell’esempio $i++ che è una scorciatoia offerta dal PHP per indicare che la variabile deve essere incrementata di 1. Invece di scrivere $i = $i +1 possiamo scrivere $i++.

Il ciclo while

Il ciclo while è un altro strumento per eseguire operazioni ripetitive, si differenzia dal ciclo for per il numero minore di variabili prese in input. Vediamo un esempio del ciclo while:

while($i<10) {

echo “Utente $i”;

$i++;

}

a differenza del ciclo for il while prende in input una sola condizione, ed esegue il codice contenuto tra le sue parentesi graffe fino a quando questa condizione è vera. La condizione del ciclo while può essere fatta con tutti gli operatori utilizzati all’interno dell’if (vedere la tabella di riferimento nel capitolo precedente).

Leggi tutto

Andrea Pastore 26/09/2020

9. Le funzioni in PHP

Spesso capita che dobbiamo usare un determinato pezzo di codice in più parti della nostra web application. Potremmo certamente ricopiare il codice ovunque ci serva, ma non è una buona idea: se dobbiamo cambiare quel codice dovremmo andarlo a modificare in tutti i punti in cui lo abbiamo scritto. Esiste un modo migliore per ottimizzare questo aspetto della programmazione: la creazione di funzioni.

Una funzione è un codice che può essere richiamato in altre parti del programma. In questo modo quando dovrà essere modificata dovremmo modficiare solo il codice contenuto nella funzione e non in tutti i punti in cui è stata chiamata. Per definire una funzione si deve usare la parola chiave function, ad esempio:

	function saluta() {

    echo "Ciao mondo!";

}

la funzione che abbiamo appena scritto stampa la scritta “Ciao mondo!”. Ovviamente il codice qui sopra definisce la fuzione, ma non la manda in esecuzione. Per eseguirla bisognerà richiamarla nel nostro codice scrivento:

	saluta();

Parametri di una funzione

una funzione può avere dei parametri passati in input, che vanno specificati nelle parentesi tonde. Vediamo un esempio:

	function saluta2($nome) {

    echo "Ciao $nome!";

}

Il parametro $nome può contenere qualsiasi valore, ad esempio posso chiamare la funzione in questo modo:

	saluta2("Mario");   

saluta2("Antonio");

Ho chiamato la funzione due volte, usando due nomi diversi, quindi PHP stamperà di volta in volta il nome che gli viene passato.

Nota: se la funzione non riceverà i parametri attesi (nel caso di saluta2 il parametro $nome) darà un errore.

Parametri preimpostati

È possibile assegnare un valore predefinito ai parametri. Vediamo ad esempio questa funzione:

	function saluta3($nome = “Mario”) {

    echo "Ciao $nome!";

}

Questa funzione può essere utilizzata come la funzione saluta2 vista sopra, ovvero:

	saluta3(“Antonio”);

ma può anche essere utilizzata senza parametri:

	saluta3();

In questo caso la funzione assegna alla variabile $nome il valore di default stabilito al momento della sua creazione.

È possibile anche avere un misto di parametri preimpostati e non. Ad esempio la funzione definita qui di seguito:

	function nuovaFunzione($parametro1, $parametro2 = “test”) {

echo “$parametro1 $parametro2”;

}

prende in input due parametri, di cui uno è preimpostato. Significa che questa funzione può essere chiamata in questo modo:

	nuovaFunzione(“valore1”, “valore2”);

oppure

	nuovaFunzione(“valore1”);

In questo esempio la funzione ha un solo parametro preimpostato, quindi se provassimo a richiamarla in questo modo:

	nuovaFunzione();

otterremmo un errore.

Inserire i tipi di dato

nei parametri in input possiamo specificare il tipo di dato, per rendere più sicuro il codice. Consideriamo la funzione:

	function cubo($numero) {

return $numero * $numero * numero;

}

se passiamo per errore un dato errato, ad esempio scriviamo:

	cubo(“cento”);

la funzione restituirà dei warning, ma lo script continuerà la sua esecuzione creando errori a cascata. Se invece modifichiamo la firma della funzione scrivendo:

	function cubo(int $numero) {

return $numero * $numero * numero;

}

in questo caso al momento di eseguire la funzione verrà generato un fatal error, che bloccherà l’esecuzione dello script.

Funzioni predefinite

PHP dispone di un gran numero di funzioni predefinite, che consentono di eseguire operazioni comuni. Sono tantissime, in questa tabella vediamo le principali.

Nome funzione  Utilità 
 strlen restituisce la lunghezza di una stringa

Esempio:
strlen($stringa)
 str_replace Sostituisce una sottostringa con un altro valore all’interno di una stringa

Esempio:
str_replace($trova,$sostituisciCon,$stringa)
 substr Restituisce una porzione della stringa passata in input. Prende in input, oltre alla stringa, la posizione di partenza e il numero di elementi da inserire nella sottostringa.

Esempio:
substr($stringa,0,20);
// restituisce i primi venti caratteri della variabile $stringa
 strtolower Restituisce la stringa con tutte le lettere in minuscolo

Esempio:
strtolower($stringa);
 strtoupper Restituisce la stringa con tutte le lettere in maiuscolo

Esempio:
strtoupper($stringa);
 htmlspecialchars Funzione che restituisce una stringa in cui i caratteri speciali della stringa passata in input sono convertiti in entità HTML.

Esempio:
htmlspecialchars(“”);

L’output di questo comando sarà:



I simboli “<” e “>” sono stati trasformati in entià HTML, rispettivamente in < e >

Questo fa si che il risultato visivo per l’utente sia lo stesso, ma l’interprete JavaScript non eseguirà questo codice in quanto non è racchiuso dal tag

Viene utilizzata quando dobbiamo stampare del codice in una pagina web (ad esempio a scopo didattico) oppure per rendere sicure delle stringhe passate in input (sebbene la soluzione ideale sia la funzione filter_input).
 exit Termina l’esecuzione del programma, tutto il codice che si trova dopo la chiamata di questa funzione non verrà eseguito.

Esempio:
exit();
 isset Consente di verificare se una variabile è stata creata o meno. Restituisce true se la variabile esiste, false altrimenti. Viene usata tipicamente negli if, in modo da fare delle azioni quando

Esempio:
if(isset($variabile)) {
      // se la variabile esiste esegue un certo codice
}
else {
      // se la variabile non esiste esegue altre azioni
}
 is_numeric Restituisce true se il valore passato in input è un numero, viene usata tipicamente all’interno di un if.

Esempio:
if(is_numeric($var)) {
      // eseguo il codice dell’if
}
 is_string Restituisce true se il valore passato in input è un numero, viene usata tipicamente all’interno di un if.

Esempio:
if(is_string($var)) {
      // eseguo il codice
}
 header Funzione per gestire gli header, viene usata tipicamente per reindirizzare l’utente in qualche altra pagina del nostro sito.

Esempio:
header(“Location: index.php”);
Leggi tutto

Andrea Pastore 27/09/2020

10. Include, Require

A volte può essere necessario richiamare pezzi di codice scritti altrove. Per fare questo PHP ci mette a disposizione due comandi:

  • include
  • require

Ad esempio, supponiamo di aver creato un file funzioni.php dove che contiene tutte le nostre funzioni. Per includerlo dobbiamo creare questo codice:

	include “funzioni.php”;

oppure:

	require “funzioni.php”;

queste due funzioni assolvono allo stesso compito, ma hanno un comportamento diverso nel caso il file non venga trovato: include genera un errore di tipo warning, che non blocca l’esecuzione dello script PHP, require invece genera un errore di tipo fatal error, bloccando l’esecuzione dello script.

Percorso parziale o un percorso assoluto

Sia include che require permettono di specificare percorsi parziali e percorsi assoluti.

Nell’esempio precedente abbiamo usato un percorso parziale, include e require avrebbero cercato il file funzioni.php nella cartella in cui si trova il file dove viene richiesta l’inclusione. Un altro esempio di percorso parziale può essere:

	include “../funzioni.php”;

che cercherà il file da recuperare nella cartella che contiene la cartella dove si trova il file. Ancora un altro esempio è:

	include “cartella/funzioni.php”;

che cercherà il file da recuperare nella cartella che “cartella”, che deve trovarsi nella stessa cartella dove si trova il file.

Se ad esempio scriviamo:

	include “/var/www/html/funzioni.php”;

oppure

	require “/var/www/htm/funzioni.php”;

stiamo indicando al PHP il percorso esatto, partendo dalla root del sistema operativo, dove recuperare il file.

Leggi tutto

Cerca...