23. I namespace
Andrea Pastore 27/09/2020 0
Un namespace una collezione di nomi di entità, definite dal programmatore, omogeneamente usate in uno o più file sorgente. A partire da PHP 7 anche PHP supporta questo approccio, che ha lo scopo di evitare confusione ed equivoci nel caso siano necessarie molte entità con nomi simili, fornendo il modo di raggruppare i nomi per categorie.
Concettualmente un namespace è assimilabile alla struttura delle cartelle di un filesystem: dobbiamo dichiarare un’origine per il nostro namespace che corrisponde alla directory root, o al nome del disco su sistemi Windows, e possiamo inserire in maniera sequenziale una serie di suddivisioni che in questa similitudine rappresenterebbero le sottocartelle.
Vantaggi dei namespace
Il primo vantaggio è quello di organizzare il codice in modo da facilitare la manutenibilità, ad esempio tramite lo standard PSR-4;
non dobbiamo preoccuparci dei problemi relativi alle omonimie tra classi, ad esempio una classe con un nome molto comune come Connection non sarà più un problema.
Potrebbero interessarti anche...
Andrea Pastore 26/09/2020
2. La notazione CamelCase
Quando scriviamo un programma e dobbiamo assegnare i nomi alle varie entità (variabili, classi, package ecc.) non possiamo usare spazi, ad esempio non scriveremo
int numero oggetti;
ma scriveremo
int numeroOggetti;
la lettera iniziale della parola oggetti è scritta in maiuscolo, per una pratica nata negli anni 70 definita notazione CamelCase. Per facilitare la lettura del codice, i programmatori cominciarono a scrivere le inizali di ogni parola successiva alla prima in maiuscolo, ed è una pratica caldamente consigliata ancora oggi.
Andrea Pastore 27/09/2020
21. PHP e i file
PHP, come tutti i linguaggi di programmazione, dispone di una serie di funzioni per gestire i file.
Controllare l’esistenza di un file
Ci sono casi in cui dobbiamo verificare l'esistenza di un file, prima di compiere
determinate operazioni. In tal caso possiamo usare file exists, che restituisce ture
se il file esiste e false altrimenti
if(file_exists("text.txt")) {
echo "Il file esiste";
}
else {
echo "Il file non esiste";
}
La funzione fopen
La funzione fopen è una delle unzioni più popolari per quanto riguarda i file: crea un oggetto che consente la lettura di un file in diverse modalità:
- lettura
- scrittura
- append
- lettura e scrittura
il secondo parametro ci consente di specificare la modalità del file
- r sta per lettura
- w sta per scrittura
- w+ lettura e scrittura, elimina il contenuto precedente del file
- a sta per append
- a+ lettura e scrittura, non elimina il contenuto precedente
$file = fopen("prova.txt", "r");
// per leggere un file possiamo usare questo ciclo
while(! feof($file)) {
$line = fgets($file); // fgets lette il file una riga alla volta
echo $line. "<br>";
}
/*
* per scrivere un file oltre ad aprire un file in modalità scrittura
* con fopen dobbiamo utilizzare la funzione fwrite
*/
$file2 = fopen("file.txt","w");
fwrite($file2,$line);
Leggere il contenuto di un file
PHP mette a disposizione altre funzioni per leggere l’intero contenuto del file:
readfile()
$contenutoFile = readfile("prova.txt");
echo $contenutoFile; // nota che questa funzione stamperà il contenuto del file e la lunghezza
file_get_contents()
La funzione più utilizzata per leggere sui file, consente anche di specificare se è abilitata la modalità strict path (che non vedremo in questa guida), un eventuale context e il punto di partenza della lettura e quanti caratteri dobbiamo leggere.
// in questo esempio leggiamo tutto il contenuto
$contenutoFile = file_get_contents(“prova.txt”);
// in questo esempio leggiamo i primi 20 caratteri a partire dall’undicesimo carattere
$contenutoFile = file_get_contents(“prova.txt”, FALSE, NULL, 20, 14);
Copiare un file
PHP mette a disposizione la funzione copy per copiare un file. Vediamo un esempio:
copy("file.txt","nuovoFile.txt");
Con copy è possibile copiare anche file localizzati su server diversi. Per fare questo basta specificare un'url nel primo parametro, ad esempio:
copy("https:miosito.it/logo.png","nuovoFile.png");
Andrea Pastore 27/09/2020
18. L’operatore ternario
Supponiamo di avere il seguente codice che assegna un valore ad una variabile in base all’esistenza o meno di un’altra variabile (nel nostro caso $cliente). In caso affermativo assegna il nome del cliente alla variabile, in caso negativo la inizializza con una stringa vuota.
if(isset($cliente)) {
$nomeCliente = $cliente["nome"];
}
else {
$nomeCliente = "";
}
PHP mette a disposizione un operatore per eseguire lo stesso codice: l’operatore ternario. Questo è composto dai simboli () seguito da un punto interrogativo, seguito da un’istruzione e poi da una seconda istruzione. Vediamo come scrivere lo stesso codice con l’operatore ternario:
$nomeCliente = (isset($cliente)) ? $cliente["nome"] : "");
È anche possibile usarlo all’interno di echo: supponiamo di avere un codice simile a quello precedente, ma invece assegnare un valore stampa direttamente.
if(isset($cliente)) {
echo $cliente["nome"];
}
else {
echo "Il cliente non esiste";
}
Il codice con l’operatore ternario è il seguente:
echo((isset($cliente)) ? $cliente["nome"] : "Il cliente non esiste");