Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/Php"
Differenze tra le versioni 1 e 2
Versione 1 del 20/11/2012 20.34.55
Dimensione: 94
Autore: garakkio
Commento: TODO
Versione 2 del 23/10/2023 16.01.07
Dimensione: 8243
Autore: jeremie2
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#format wiki
#LANGUAGE it
<<BR>>
<<Include(NuoviStrumentiWiki/PaginaDiProva)>>
<<Indice(depth=2)>>
Linea 3: Linea 9:
TODO... Il linguaggio di programmazione [[https://it.wikipedia.org/wiki/PHP|PHP]] nacque agli albori dell'avvento di internet per lo sviluppo lato server di pagine web [[https://it.wikipedia.org/wiki/Pagina_web_dinamica|dinamiche]]. In questa guida vengono mostrate alcune basi per il suo utilizzo, si rimanda alla copiosa documentazione disponibile in rete per uno studio più approfondito.
Linea 7: Linea 13:
TODO... Se quello che si desidera è una semplice piattaforma di test o banalmente muovere i primi passi, è sufficiente [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://php-cgi|php-cgi]]. Questo permetterà di sfruttare un server minimale (non adatto in produzione).

In alternativa il pacchetto [[apt://php|php]] darà luogo a un'installazione più completa con svariate dipendenze fra cui il web server '''Apache'''.

= Esempi di utilizzo =

Una caratteristica particolare di '''php''' (a patto di avere un server web in funzione) è data dal fatto di poterlo utilizzare in modo analogo a quanto avviene per '''Javascript''', cioè inserendo dei tag contenenti codice direttamente all'interno di documenti '''html''' salvati con estensione `.php`.

Tipicamente in ambito produttivo, se è in utilizzo ad es. il server [[Server/Apache|Apache]] o in locale se è stato ricreato un ambiente di sviluppo ad es. tramite [[Server/Xampp|XAMPP]], i file `.php` vengono salvati in una opportuna directory. Per semplificare viene qui considerato il caso di utilizzo di '''php-cgi''', in grado di attivare funzionalità web server minimali. In questo caso i file possono essere salvati dove torna più comodo.

== Hello world ==

 0. Creare nella propria '''Home''' il file `game.php` con al suo interno un'ossatura di codice '''html''':{{{
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Game</title>
</head>
<body>

</body>
</html>
}}}
 0. Inserire all'interno dei tag '''<body>''' il tag '''<?php ?>''' con al suo interno il codice per stampare la stringa ''ciao'':{{{
...
<body>

<?php echo "ciao"; ?>

</body>
...
}}}
 0. Avviare il server minimale digitando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
php -S localhost:8000
}}}
 0. Aprire nel proprio browser la pagina http://localhost:8000/game.php
 0. Se la pagina aperta mostra la scritta:{{{
ciao
}}}tutto è andato a buon fine. In caso contrario nel terminale apparirà un messaggio di errore.

== Lancio di un dado ==

Viene qui simulato il lancio di un dado. Questo metterà in luce alcuni aspetti della programmazione in '''php'''.

 0. Sostituire all'interno del tag '''<body>''' il codice inserito in precedenza con il seguente:{{{
<h1>Tira il dado</h1>

<?php
    $numero = random_int(1, 6);

    if ($numero == 6) {
        echo "<b>$numero<br>Hai vinto! :)</b>";
    } else {
        echo "<b>$numero<br>..riprova! Avrai più fortuna ;)</b>";
    }
?>

<p>
    Fai clic sul pulsante refresh 🔁️ oppure premi il tasto <b>F5</b> per lanciare nuovamente il dado.
</p>
}}}
 0. Salvare il file `game.php` e ricaricare la pagina http://localhost:8000/game.php

Segue una spiegazione del codice:
 * A livello di codice html per completezza è stato inserito il titolo "''Tira il dado''" tramite tag '''<h1>'''.
 * Nel tag '''<?php ?>''' è stata impostata la variabile '''$numero''' alla quale è stato assegnato un valore random variabile fra '''1''' e '''6'''.
 * Attraverso il costrutto '''if/else''' viene valutato il valore di '''$numero'''. Se risulta essere uguale a 6, apparirà la scritta:{{{
Hai vinto! :)
}}}in caso contrario:{{{
..riprova! Avrai più fortuna ;)
}}}{{{#!wiki note
Da notare come in una stringa di testo delimitata dalle virgolette "..." sia le '''variabili''' php che i '''tag''' html vengano automaticamente riconosciuti. In molti linguaggi l'interpolazione di elementi interni a una stringa può essere ben più macchinosa.
}}}
 0. In fondo, internamente al tag paragrafo '''<p>''', si indica al giocatore come generare un nuovo lancio del dado tramite refresh della pagina.

== Header condiviso ==

Fin qua è stata creata la pagina '''game.php'''. Si vuole andare oltre, creando una seconda pagina '''home.php''' e facendo in modo che:
 * condividano la parte superiore della pagina, dal tag '''<!DOCTYPE html>''' fino '''<body>''';
 * condividano pure un menù basilare in modo che da ogni pagina sia possibile richiamare l'altra.

Considerando le due pagine come facenti parte di un unico sito web, è ovvio che alcune parti dovranno essere uguali come tipicamente avviene per la parte alta di un sito (''header'') in cui sono inseriti logo, menù, eventuale immagine di sfondo, ecc... Lo stesso vale per il cosiddetto ''footer'' (la parte bassa della pagina) che però qui viene omesso per brevità.

Per evitare di dover ripetere il codice su ogni singola pagina, la parte interessata viene scritta su di un file a se stante '''header.php''' e richiamato attraverso la funzione '''include()''' da ogni singola pagina.

 0. Creare il file '''header.php''' con all'interno il seguente codice:{{{
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title><?php echo $titolo_pagina ?></title>
</head>
    <body>
        <div>
            <a href="./home.php">Home</a> -
            <a href="./game.php">Game</a>
        </div>
}}}
  * Da notare che fra i tag '''<title>''' appare il codice php '''echo $titolo_pagina''' (questo per impostare una variabile generica). Quando sulle pagine '''home.php''' e '''game.php''' verrà richiamato il codice soprastante, ognuna di esse imposterà il proprio nome alla variabile '''$titolo_pagina'''.
  * Dopo il tag '''<body>''' appare come previsto il menù circondato da generici tag '''<div>'''.
 0. Creare il '''home.php''' con il seguente codice interno:{{{
<?php
    $titolo_pagina = "Home";
    include('header.php');
?>

<h1>Salve!</h1>

<p>
    Questa è una pagina di prova per scoprire le basi di <b>
    <a href="https://it.wikipedia.org/wiki/PHP">php</a></b>.
</p>

</body>
</html>
}}}
  * Nel tag '''<?php ?>''' viene assegnato il titolo della pagina alla variabile '''$titolo_pagina''' e viene quindi richiamato tutto il contenuto del file `header.php`.
  * Più in basso è stato aggiunto codice html di presentazione per la hompage.
 0. Aggiornare a sua volta il codice del file '''game.php''' sostituendogli il seguente codice:{{{
<?php
    $titolo_pagina = "Game";
    include('header.php');
?>

<h1>Tira il dado</h1>

<?php
    $numero = random_int(1, 6);

    if ($numero == 6) {
        echo "<b>$numero<br>Hai vinto! :)</b>";
    } else {
        echo "<b>$numero<br>..riprova! Avrai più fortuna ;)</b>";
    }
?>

<p>
    Fai clic sul pulsante refresh 🔁️ oppre premi il tasto <b>F5</b> per lanciare nuovamente il dado.
</p>

</body>
</html>
}}}

== Conclusioni ==

Ovviamente l'esempio qua mostrato ha i suoi limiti. Supponendo ad es. di dover creare un sito che mostri un lungo catalogo di automobili, appare ovvio come possa diventare dispendioso dover scrivere a mano ogni singola pagina dalla quale richiamare header/footer. Con i moderni web framework la pagina viene generata al momento attraverso un template le cui sezioni vengono completate sia da dati provenienti da file statici, sia da query al database, ecc...

L'utilizzo di un framework diventa per lo più simile in qualsiasi linguaggio di programmazione si stia operando. In tale contesto i vantaggi iniziali del '''PHP''' "nudo e crudo" vanno appiattendosi. Tuttavia lo scopo principale era proprio di mostrare alcune caratteristiche peculiari di '''PHP''', un linguaggio che nasce appositamente per lo sviluppo web e per combinarsi con il codice html senza il bisogno di installare/configurare strati e substrati di software aggiuntivo.

= Ulteriori risorse =
Linea 10: Linea 170:
CategoryProgrammazione CategoryHomepage CategoryNuoviDocumenti


Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Introduzione

Il linguaggio di programmazione PHP nacque agli albori dell'avvento di internet per lo sviluppo lato server di pagine web dinamiche. In questa guida vengono mostrate alcune basi per il suo utilizzo, si rimanda alla copiosa documentazione disponibile in rete per uno studio più approfondito.

Installazione

Se quello che si desidera è una semplice piattaforma di test o banalmente muovere i primi passi, è sufficiente installare il pacchetto php-cgi. Questo permetterà di sfruttare un server minimale (non adatto in produzione).

In alternativa il pacchetto php darà luogo a un'installazione più completa con svariate dipendenze fra cui il web server Apache.

Esempi di utilizzo

Una caratteristica particolare di php (a patto di avere un server web in funzione) è data dal fatto di poterlo utilizzare in modo analogo a quanto avviene per Javascript, cioè inserendo dei tag contenenti codice direttamente all'interno di documenti html salvati con estensione .php.

Tipicamente in ambito produttivo, se è in utilizzo ad es. il server Apache o in locale se è stato ricreato un ambiente di sviluppo ad es. tramite XAMPP, i file .php vengono salvati in una opportuna directory. Per semplificare viene qui considerato il caso di utilizzo di php-cgi, in grado di attivare funzionalità web server minimali. In questo caso i file possono essere salvati dove torna più comodo.

Hello world

  1. Creare nella propria Home il file game.php con al suo interno un'ossatura di codice html:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Game</title>
    </head>
    <body>
    
    </body>
    </html>
  2. Inserire all'interno dei tag <body> il tag <?php ?> con al suo interno il codice per stampare la stringa ciao:

    ...
    <body>
    
    <?php echo "ciao"; ?>
    
    </body>
    ...
  3. Avviare il server minimale digitando nel terminale:

    php -S localhost:8000
  4. Aprire nel proprio browser la pagina http://localhost:8000/game.php

  5. Se la pagina aperta mostra la scritta:

    ciao
    tutto è andato a buon fine. In caso contrario nel terminale apparirà un messaggio di errore.

Lancio di un dado

Viene qui simulato il lancio di un dado. Questo metterà in luce alcuni aspetti della programmazione in php.

  1. Sostituire all'interno del tag <body> il codice inserito in precedenza con il seguente:

    <h1>Tira il dado</h1>
    
    <?php 
        $numero = random_int(1, 6);
    
        if ($numero == 6) {
            echo "<b>$numero<br>Hai vinto! :)</b>";
        } else {
            echo "<b>$numero<br>..riprova! Avrai più fortuna ;)</b>";
        }
    ?>
    
    <p>
        Fai clic sul pulsante refresh 🔁️ oppure premi il tasto <b>F5</b> per lanciare nuovamente il dado.
    </p>
  2. Salvare il file game.php e ricaricare la pagina http://localhost:8000/game.php

Segue una spiegazione del codice:

  • A livello di codice html per completezza è stato inserito il titolo "Tira il dado" tramite tag <h1>.

  • Nel tag <?php ?> è stata impostata la variabile $numero alla quale è stato assegnato un valore random variabile fra 1 e 6.

  • Attraverso il costrutto if/else viene valutato il valore di $numero. Se risulta essere uguale a 6, apparirà la scritta:

    Hai vinto! :)

    in caso contrario:

    ..riprova! Avrai più fortuna ;)

    Da notare come in una stringa di testo delimitata dalle virgolette "..." sia le variabili php che i tag html vengano automaticamente riconosciuti. In molti linguaggi l'interpolazione di elementi interni a una stringa può essere ben più macchinosa.

  • In fondo, internamente al tag paragrafo <p>, si indica al giocatore come generare un nuovo lancio del dado tramite refresh della pagina.

Header condiviso

Fin qua è stata creata la pagina game.php. Si vuole andare oltre, creando una seconda pagina home.php e facendo in modo che:

  • condividano la parte superiore della pagina, dal tag <!DOCTYPE html> fino <body>;

  • condividano pure un menù basilare in modo che da ogni pagina sia possibile richiamare l'altra.

Considerando le due pagine come facenti parte di un unico sito web, è ovvio che alcune parti dovranno essere uguali come tipicamente avviene per la parte alta di un sito (header) in cui sono inseriti logo, menù, eventuale immagine di sfondo, ecc... Lo stesso vale per il cosiddetto footer (la parte bassa della pagina) che però qui viene omesso per brevità.

Per evitare di dover ripetere il codice su ogni singola pagina, la parte interessata viene scritta su di un file a se stante header.php e richiamato attraverso la funzione include() da ogni singola pagina.

  1. Creare il file header.php con all'interno il seguente codice:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title><?php echo $titolo_pagina ?></title>
    </head>
        <body>
            <div>
                <a href="./home.php">Home</a> -
                <a href="./game.php">Game</a> 
            </div>
    • Da notare che fra i tag <title> appare il codice php echo $titolo_pagina (questo per impostare una variabile generica). Quando sulle pagine home.php e game.php verrà richiamato il codice soprastante, ognuna di esse imposterà il proprio nome alla variabile $titolo_pagina.

    • Dopo il tag <body> appare come previsto il menù circondato da generici tag <div>.

  2. Creare il home.php con il seguente codice interno:

    <?php 
        $titolo_pagina = "Home";
        include('header.php');
    ?>
    
    <h1>Salve!</h1>
    
    <p>
        Questa è una pagina di prova per scoprire le basi di <b>
        <a href="https://it.wikipedia.org/wiki/PHP">php</a></b>.
    </p>
    
    </body>
    </html>
    • Nel tag <?php ?> viene assegnato il titolo della pagina alla variabile $titolo_pagina e viene quindi richiamato tutto il contenuto del file header.php.

    • Più in basso è stato aggiunto codice html di presentazione per la hompage.
  3. Aggiornare a sua volta il codice del file game.php sostituendogli il seguente codice:

    <?php 
        $titolo_pagina = "Game";
        include('header.php');
    ?>
    
    <h1>Tira il dado</h1>
    
    <?php 
        $numero = random_int(1, 6);
    
        if ($numero == 6) {
            echo "<b>$numero<br>Hai vinto! :)</b>";
        } else {
            echo "<b>$numero<br>..riprova! Avrai più fortuna ;)</b>";
        }
    ?>
    
    <p>
        Fai clic sul pulsante refresh 🔁️ oppre premi il tasto <b>F5</b> per lanciare nuovamente il dado.
    </p>
    
    </body>
    </html>

Conclusioni

Ovviamente l'esempio qua mostrato ha i suoi limiti. Supponendo ad es. di dover creare un sito che mostri un lungo catalogo di automobili, appare ovvio come possa diventare dispendioso dover scrivere a mano ogni singola pagina dalla quale richiamare header/footer. Con i moderni web framework la pagina viene generata al momento attraverso un template le cui sezioni vengono completate sia da dati provenienti da file statici, sia da query al database, ecc...

L'utilizzo di un framework diventa per lo più simile in qualsiasi linguaggio di programmazione si stia operando. In tale contesto i vantaggi iniziali del PHP "nudo e crudo" vanno appiattendosi. Tuttavia lo scopo principale era proprio di mostrare alcune caratteristiche peculiari di PHP, un linguaggio che nasce appositamente per lo sviluppo web e per combinarsi con il codice html senza il bisogno di installare/configurare strati e substrati di software aggiuntivo.

Ulteriori risorse


CategoryHomepage CategoryNuoviDocumenti