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 19/03/2020

1. Programmare in PHP

Il PHP è un linguaggio di scripting utilizzato principalmente per creare siti web e web application. È molto popolare perché i principali strumenti per creare siti web (WordPress, Joomla!, Drupal e molti altri) sono fatti in PHP.

Hello world

È tradizione iniziare a programmare scrivendo un programma che stampa a video la scritta “Hello world!”. Per fare questo in PHP dobbiamo scrivere:




<?php

     echo “Hello wordl!”;


Il tag <?php

Il codice PHP viene scritto in file con estensione “.php” e deve essere preceduto dal tag <?php. L’interprete PHP esegue il codice contenuto tra questo tag e il tag di chiusura ?> . Supponiamo di avere questo codice:

<html>

<head></head>

<body>

<?php

echo “Hello world!”;

?>

</body>

</html>


Quando l’interprete PHP analizzerà questo file si concentrerà solo sulla parola contenuta tra i tag <?php e ?>. Il codice echo “Hello world!”; verrà eseguito e al suo posto verrà scritto “Hello world!”.

 Vediamo ora un altro esempio di un file che contiene solo codice PHP: in questo caso il tag di chiusura non è necessario, in quanto non sono presenti tag HTML.



<?php

echo “Hello world!”;

Cosa succede quando carichiamo una pagina in PHP

PHP è un linguaggio interpretato, significa che quando un utente visita una pagina il server la elaborerà in quel momento. L’elaborazione avviene con un programma apposito, l’interprete PHP. Vediamo quali sono i passaggi che avvengono quando viene richiesta una pagina web:

Commenti in PHP

I commenti sono degli appunti che possiamo voler scrivere quando creiamo un programma. Quando scriviamo un programma ci ricordiamo quello che stiamo facendo, ma sarà difficile che ci ricorderemo qualcosa di un programma scritto un anno fa. Possiamo commentare in due modi diversi:


// questo è un commento su singola riga

/*

  * questo è un commento su più righe

* viene usato quando dobbiamo commentare una funzione, un algoritmo ecc.

*/

Il testo contenuto all’interno dei commenti viene ignorato da PHP, se proviamo a scrivere lo stesso testo dei commenti senza il simbolo del commento otterremo un errore, perché PHP scambierà quel testo per comandi che deve eseguire e ci avviserà che ci sono errori nel codice.

Installiamo il nostro IDE

Un IDE (integrated desktop environment) è un software che, in fase di programmazione, aiuta i programmatori nello sviluppo del codice sorgente di un programma.  Spesso l'IDE aiuta lo sviluppatore segnalando errori di sintassi del codice direttamente in fase di scrittura, oltre a tutta una serie di strumenti e funzionalità di supporto alla fase di sviluppo e debugging.

Il nostro IDE di riferimento: NetBeans

NetBeans è uno dei migliori editor gratuiti per il PHP: è in grado di evidenziare la sintassi, suggerire il codice, trovare errori di sintassi e altro ancora. Nella schermata sottostante abbiamo cominciato a scrivere il comando PHP echo, e vediamo che NetBeans ci sta indicando la sintassi in un riquadro immediatamente sotto alla riga dove stiamo scrivendo. Ci sta anche segnalando che quello che abbiamo scritto noi (ovvero solo la parola echo) non è corretto, evidenziandola in rosso.

Vantaggi di un IDE

Un IDE presenta una serie di vantaggi, come ad esempio la possibilità di consultare versioni precedenti dello stesso file (notate che in alto c’è un tasto Source che mostra il codice che scriviamo, subito a destra c’è il tasto History che consente di vedere versioni precedenti del file). Altra cosa importante sono l’auto completamento (ovvero la capacità del software di capire quale funzione o variabile dobbiamo usare) e le scorciatoie di tastiera: ad esempio:

alt + shift + canc + freccia su oppure freccia giù

consente di portare la riga selezionata sopra o sotto, a seconda della freccia selezionata

Installiamo XAMPP

XAMPP è un server locale, ovvero uno strumento che consente di simulare sui nostri computer domestici uno spazio web. I server locali sono molto utilizzati dagli sviluppatori, perché danno la possibilità di testare i progetti in locale e di trasferirli poi comodamente sui server di destinazione una volta pronti.

Al suo interno contiene PHP, MySQL e phpMyAdmin e consente con un solo click di creare un server con tutto quello che ci serve per eseguire applicazioni PHP e MySQL. XAMPP si può installare su Linux, Windows e Mac OS X con un file di installazione scaricabile dal sito ufficiale https://www.apachefriends.org. Il sito è disponibile in molte lingue, tra cui l’italiano, e oltre a darci la possibilità di scaricare XAMPP contiene le risposte alle domande più comuni fatte dagli utenti, divise per sistema operativo.

Una volta installato possiamo avere dei siti che stanno solo sul nostro computer, accedendo all’indirizzo “localhost/nomecartella” (dove “nomecartella” può essere sostituito da un nome a piacimento). Le cartelle vanno create nella cartella htdocs che si trova all’interno della directory principale di XAMPP: su Windows il percorso è solitamente

C://XAMPP/htdox

sulle principali distribuzioni Linux invece il percorso di questa cartella è:

opt/lampp/htdocs

Creiamo un nuovo progetto PHP con NetBeans

Come primo passo creiamo all’interno della cartella htdocs di XAMPP creiamo la cartella principale del nostro progetto, ad esempio: “progetto1”.

Dopo aver aperto NetBeans clicchiamo su file e poi su new project, si aprirà la schermata che ci consente di scegliere quale tipo di progetto creare. Noi sceglieremo PHP Application with Existing Sources. Vedere la figura sotto

fatto questo clicchiamo su next e scegliamo la cartella base del progetto, che è quella che abbiamo creato prima (progetto1):

da questo momento in poi tutti i file e le cartelle che creeremo su NetBeans verranno inserite in quella cartella e potranno essere testate digitando l’indirizzo localhost/progetto1/nomeFile.php

 

Leggi tutto

Andrea Pastore 27/09/2020

17. Gestire le date con PHP

PHP mette a disposizione la funzione date per creare le date. Ad esempio per creare la data di oggi dovremmo scrivere:

$data = date(“d/m/Y”);

la funzione date prende come argomento il tipo di formattazione desiderato, ad esempio il codice scritto sopra genererà una data formato italiano, ovvero gg/mm/aaaa. Se avessimo voluto creare una data col formato inglese, avremmo dovuto scrivere:

$data = date(“Y-m-d”);

potrebbe anche capitarci di dover stampare solo l’anno, in questo caso scriveremo:

$data = date(“Y”);

La stessa funzione consente di stampare anche l’ora, scrivendo:

$data = date(“H:i:s”);

la lettera H indica che vogliamo stampare l’ora in formato 24h, mentre la lettera i indica i minuti. La lettera s indica i secondi. Come per la data, possiamo scrivere solo l’ora, solo i minuti o solo i secondi, ma possiamo anche scrivere tutto insieme, ad esempio:

$data = date(“d/m/Y H:i:s”);

Modificare il formato di una data

Capita frequentemente di dover modificare la data, ad esempio perché dobbiamo inserirla nel database e MySQL salva le date nel formato inglese, ovvero aaaa-mm-gg. Per convertire una stringa usiamo nuovamente la funzione date, alla quale però aggiungiamo un altro parametro, che è la conversione della data in millisecondi. Questa operazione si fa con strtotime. Vediamo questo esempio:

	$dataBase = “2015-01-01”;

echo date("d/m/Y", strtotime($dataBase));

Abbiamo passato in input a date un secondo parametro in cui con la funzione strtotime trasformiamo la stringa $dataBase in millisecondi, e poi abbiamo chiesto alla funzione date di formattarla diversamente, nel formato italiano. Il risultato di questa funzione verrà stampato dalla funzione echo. l’output del codice scritto qui sopra è:

	2015-01-01

Tabella con le opzioni della funzione date

Stampa l’anno in formato AAAA 
 y Stampa l’anno in formato AA
 m Stampa il mese informato numerico
 M Stampa il mese in formato testuale (solo le prime tre lettere)
 d Stampa il giorno in formato numerico
 D Stampa il nome del giorno (solo le prime tre lettere)
 H Stampa l’ora in formato 24h
 h Stampa l’ora in formato 12h
 i Stampa i minuti
 s Stampa i secondi
$data = date(“d/m/Y”);

la funzione date prende come argomento il tipo di formattazione desiderato, ad esempio il codice scritto sopra genererà una data formato italiano, ovvero gg/mm/aaaa. Se avessimo voluto creare una data col formato inglese, avremmo dovuto scrivere:

$data = date(“Y/m/d”);
Leggi tutto

Andrea Pastore 27/09/2020

24. Comunicazione tra server: il mondo delle API

Nel mondo informatico è frequente la necessità di parlarsi tra sistemi diversi. Supponiamo ad esempio che due server della stessa azienda devono scambiarsi informazioni sugli utenti: per fare questa cosa bisognerà prevedere lo sviluppo di file appositi che si connetteranno all’altro server e comunicheranno queste informazioni. Ogni server deve avere anche dei file predisposti per ricevere queste informazioni. Questi file prendono il nome di API. Mentre altri file sul server si occuperanno ad esempio di mostrare i siti o fare altri processi, le API saranno sempre in ascolto ricevere informazioni da uno o più server esterni.

Comunicazione tra server: l’esigenza di una lingua comune

I server possono avere diverse tecnologie, ma questo non deve essere un ostacolo alla comunicazione. Sono state inventate diversi sistemi di interscambio di dati, i più comuni sono il JSON e l’XML.

JSON

JSON sta per JavaScript Object Notation ed è il formato di scambio dei dati più diffuso oggi. Un oggetto JSON inizia e termina con una parentesi graffa, gli elementi al suo interno vengono rappresentati mettendo il nome dell’elemento seguito dai due punti e poi dal valore. Il nome dell’elemento sarà messo tra virgolette, il valore sarà messo tra virgolette solo se è una stringa. Ad esempio:

“nome”:”Mario”

oppure nel caso di un valore numerico:

“età”:5

Nota: dopo ogni elemento (tranne l’ultimo) è necessario mettere una virgola.

Vediamo un esempio di oggetto JSON che contengono le informazioni di una persona:

{
“nome”:”Mario”,
“cognome”:”Rossi”,
“età”:5,
“email”:”mariorossi@virgilio.it”
}

Array in JSON

Il JSON ha la possibilità di raccogliere elementi dello stesso tipo in un array, proprio come la maggior parte dei linguaggi di programmazione. Proprio come nei principali linguaggi di programmazione l’array si crea con le parentesi quadre e al suo interno vanno inseriti gli elementi separati da una virgola. Supponiamo ad esempio di dover rappresentare in JSON un oggetto regione, contenente nome, popolazione, pil e una lista delle principali città. Il campo principali città può essere un array con vari elementi all’interno:

	“principaliCitta”:[“Città 1”,“città 2”];

Un array può contenere anche oggetti. Pensando all’esempio di prima, supponiamo di voler rappresentare le città in maniera più accurata, indicando per ognuna nome, numero di abitanti e la provincia. L’esempio diventerebbe cosi:

	“principaliCitta”:[

{

“nome”:”Firenze”,

“abitanti”:300000,

“provincia”:”FI”

},{

“nome”:”Prato”,

“abitanti”:15000,

“provincia”:”FI”

}],

Esistono dei siti che consentono di validare il JSON scritto, ad esempio:

https://jsonformatter.curiousconcept.com/

Manipolare oggetti JSON con PHP

PHP mette a disposizione delle funzioni che consentono creare e decodificare oggetti in formato JSON: si tratta delle funzioni json_encode e json_decode.

json_encode

Per creare oggetti JSON usiamo la funzione json_encode() che prende in input un array e restituisce un oggetto JSON. Tipicamente useremo questa funzione abbinata alla funzione echo, perché dopo aver creato l’oggetto JSON vorremmo stamparlo. Vediamo un esempio:

           $utente = [

                "nome"       => "Mario",

                "cognome" => "Rossi",

                "email"       => "mariorossi@gmail.com"

           ];

          echo json_encode($utente);

i moderni browser possono formattare i dati JSON, basta indicare nell'header di pagina che si tratta di dati di questo tipo. Questo si fa con il seguente comando:

          header('Content-Type: application/json');

json_decode

La funzione json_decode() serve per decodificare i dati JSON: prende in input una stringa e restituisce l'oggetto a cui possiamo accedere  allo stesso modo in cui accediamo alle proprietà di una classe con variabili pubbliche. Vediamo un esempio:

          $jsonTxt = '{

                                "nome" : "Mario",

                                "cognome" : "Rossi",

                                "email" : "mariorossi@gmail.com"

                            }';

        $jsonObj  = json_decode($jsonTxt);

        // recupero le informazioni

        $nome       = $jsonObj->nome;

        $cognome = $jsonObj->cognome;

        echo "$nome $cognome";

SOAP

Il protocollo SOAP consente di scambiare informazioni tra componenti software utilizzando come fonte di scambio documenti scritti in XML (un metalinguaggio per la definizione di linguaggi di markup, come ad esempio HTML, ideato per consentire agli utenti di creare documenti con markup personalizzati). Era il protocollo di scambio standard prima dell’avvento del JSON, ma conserva una fetta non trascurabile di utilizzo. 

Il file WSDL

Ogni web server ha un file WSDL che contiene la descrizione della sua interfaccia: i parametri necessari ad eseguire le varie operazioni, i messaggi di risposta e cosi via.

La classe SoapClient

PHP mette a disposizione la classe SoapClient per comunicare con i web server SOAP.

Il costruttore di questo dato prende in input un indirizzo web dove è specificato il file WSDL con le opzioni del web server.

         $wsdl  = “linkwsdldelserver.wsdl";

         $soap = new SoapClient($wsdl);

Il metodo doRequest è quello che si occupa di eseguire la richiesta. Restituisce il responso del server, che dobbiamo mettere in una variabile:

         $responso = $soap->__doRequest($wsdl, $location, $action, $version);

Nota: la risposta viene fornita nel formato stdObject, quindi per accedere ai dati dovremmo comportarci come quando recuperiamo i dati di un oggetto, ad esempio:

	echo	$responso->elemento
Leggi tutto

Cerca...