26. Messa in produzione di un progetto

Andrea Pastore 27/09/2020 0

Una volta finito il nostro progetto dobbiamo trasportarlo dal nostro computer al server dove risiederà e sarà fruibile al web. Il server dove risiede il progetto accessibile a tutti è definito server di produzione. Le operazioni più comuni sono il caricamento dei file l’importazione del database, ma può capitare in progetti avanzati di dover fare altre configurazioni.

Caricare file con il protocollo FTP

L’FTP è un protocollo per il trasferimento di dati pensato per caricare file da un computer ad uno spazio web. Per caricare i file del prodotto Geecom che si vuole utilizzare si deve usare un client FTP, ad esempio FileZilla, un programma gratuito scaricabile dal sito http://filezilla-project.org/.

Dopo aver lanciato il programma apparirà questa schermata:

Per caricare i file bisogna stabilire una connessione col sito, riempendo i campi in alto a sinistra del pulsante connessione rapida. Nel campo “Host” bisogna scrivere l'indirizzo del dominio acquistato senza “www.”; nel campo “Nome utente” il nome utente con cui si accede allo spazio web, nel campo “Password” la password per accedere al vostro spazio web. Il campo “Porta” va lasciato vuoto, in questo modo viene usata la porta predefinita.

A connessione avvenuta si possono caricare i file: la finestra a destra mostra le cartelle sul server, quella a sinistra le cartelle del nostro computer. Per portare il nostro progetto online dobbiamo andare nella cartella principale, selezionate tutti i file e trascinarli nella finestra di destra di FileZilla. Il tempo necessario per il caricamento dipende dal numero di file da scaricare.

Potrebbero interessarti anche...

Andrea Pastore 26/09/2020

6. Prendere decisioni: il costrutto if

PHP può prendere decisioni tramite il costrutto if, la cui sintassi è:

 if($i>10) {

      echo "i è maggiore di 10";

 }

la parola chiave if è seguita dalle parentesi tonde che indicano una condizione. Le parentesi graffe successive indicano invece il codice che viene eseguito se la condizione è verificata

else ed else if

I costrutti else ed else if servono per aggiungere delle possibilità all’if. Entrambi hanno bisogno di un if prima, e servono per poter prendere diverse decisioni. Nel codice sottostante usiamo un else per eseguire del codice quando a condizione non è verificata:

  if($i>10) { // il codice sottostante verrà eseguito solo se la condizione è verificata

        echo "i è maggiore di 10";

  }

  else {  // questo codice viene eseguito se la condizione a riga 13 non è verificata

        echo "non è maggiore di 10";

  }

Quando dobbiamo verificare più condizioni ci viene in aiuto l’else if. nell’esempio sottostante il nostro if verificherà prima se la variabile $i è maggiore di 10, poi se è maggiore di 5 e infine se nessuan di queste due condizioni è verificata eseguirà il codice contenuto nell’else.

  if($i>10) { // il codice sottostante verrà eseguito solo se la condizione è verificata

        echo "i è maggiore di 10";

  }

  else if($i>5){  // se la prima condizione non è verificata prova questa

        echo "i è maggiore di 5";

  }

  else {  // questo codice viene eseguito se nessuna condizione è verificata

        echo "non è maggiore di 10";

  }

Nota che quando il costrutto verifica una condizione, ad esempio la prima, verrà eseguito solo il codice conenuto in quella sottosezione. Spesso queste sottosezioni sono chiamate rami.

Possibili condizioni dell’if

Oltre ai simboli > e < che servono per controllare se un numero è maggiore o minore di un altro, abbiamo altre condizioni che possiamo usare, ad esempio possiamo usare l’operatore == per verificare l’uguaglianza di due numeri oppure due stringhe.

  if($i==10) { // il codice di questo if verrà eseguito solo se la variabile $i = a 10

echo “i due numeri sono uguali”;

  }

vediamo un esempio con le stringhe:

  // il codice di questo if verrà eseguito solo se la variabile $str è uguale a “stringa”

  if($str == “stringa”) {

echo “La stringa ha il valore che abbiamo stabilito”;

  }

un’altra possibile condizione che potremmo dover verificare è se due variabili sono diverse, per questo usiamo l’operatore !=

  if($i != 10) { // il codice all’interno dell’if verrà eseguito solo se $i è diverso da 10

echo “$i è diverso da 10”;

  }

Stesso discorso con la stringa:

  // il codice di questo if verrà eseguito solo se la variabile $str è diversa da “stringa”

  if($str != “stringa”) {

echo “La stringa non ha il valore stringa”;

  }

Facciamo ora una tabella riassuntiva con gli operatori usabili all’interno di un if. Questi operatori sono detti operatori di uguaglianza.

Operatore  Nome  Esempio  Spiegazione 
 ===  Identical  $i === $k  Restituisce true se $i ha lo stesso valore di $k ed è dello stesso tipo di $k
 ==  Equal  $i == $k  Restituisce true se $i ha lo stesso valore di $k
 !=  Not equal  $i != $k  Restituisce true se $i è diverso da $k
 <  Less then  $i < $k  Restituisce true se $i è minore di $k
 >  Greater then  $i > $k  Restituisce true se $i è maggiore di $k
 <=  Less then or equal to  $i <= $k  Restituisce true se $i è minore o uguale a $k
 >=  Greater then or equal to  $i >= $k  Restituisce true se $i è maggiore o uguale a $k

Gli operatori AND e OR

Spesso quando prendiamo decisioni non basta prendere in esame un solo parametro

L’operatore OR

l’operatore OR si occupa di verificare che una delle condizioni specificate è vera. In PHP l’operatore OR è dato dal comando || . Si veda il seguente esempio:

if($var==0 || $var2 == 0) {

echo “una delle due variabili vale 0”;

}

La scritta “una delle due variabili vale 0” viene stampata solo se una delle due variabili rispetta la condizione. Notiamo che se entrambe rispettano la condizione la scritta viene stampata ugualmente, perché l’operatore OR controlla che almeno una condizione sia verificata.

L’operatore AND

L’operatore AND verifica che tutte le condizioni specificate siano vere. IN PHP si può usare questo operatore scrivendo &&. Modifichiamo l’esempio di prima usando l’operatore AND al posto dell’operatore OR. Il codice sarà quindi il seguente:

if($var==0 && $var2 == 0) {

echo “entrambe le due variabili valgono 0”;

}

in questo caso la scritta “entrambe le due variabili valgono 0” viene stampata solo se sia $var che $var1 valgono 0.

Il costrutto switch

Quando in un if dobbiamo verificare diverse condizioni possiamo utilizzare il costrutto switch, che ha la seguente sintassi:

    switch($variabile) {

        case 'crea':

            $commento->crea();

            break;

        case 'modifica':

            $commento->modifica();

            break;

...

    }

tramite la parola chiave case possiamo stabilire nuove operazioni da fare in base al valore della variabile passata in input allo switch. Al termine di ogni blocco dobbiamo usare la parola chiave break per terminare quel ciclo di istruzioni.

Leggi tutto

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

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...