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.

Leggi tutto

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");
Leggi tutto

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");
Leggi tutto

Cerca...