Aller au contenu

Un cours de ...

Ce cours traîte des langages PHP pour tout ce qui est calcul et MySQL pour tout ce qui est gestion de base de données.

Une base de données

Le MySQL est un système de gestion de bases de données relationnelles. Une base de données est un ensemble structuré de données.

À ne pas confondre avec SQL qui est un langage de requête sur base de données.

Le PHP est un langage simple d'accès, Open Source et gratuit, performant et solide.

Le langage PHP

Où écrire tu PHP?

Dans n'importe quel éditeur de texte: Notepad++ est universel. J'utilise Visual Studio Code pour ma part.

L'extension .php

Les fichiers qui décrivent le contenu HTML porte naturellement l'extension .html. Les fichiers contenant du PHP en plus du HTML porteront l'extension .php

La syntaxe de base

Le code PHP se tape entre les balises du même nom. Un exemple de code ci-dessous:

🗃️ Script PHP
<!DOCTYPE html>
<html>
    <head>
        <title>Mon cours de PHP</title>
        <meta charset="utf-8">
        <link rel="stylesheet" href="cours_php.css">
    </head>

    <body>
        <h1>Titre de ma page</h1>
        <?php
            //Affiche "Bravo" avec un retour à la ligne
            echo "Bravo!<br>"; 
            /*Affiche
              "Bonjour le Monde
            */
            echo "Tu as fait ton premier script php"; 
        ?>
        <p>Attention, le navigateur ne sait pas lire du php!</p>
    </body>
</html>

Alors qu'un navigateur comme Firefox ou Chrome, peut directement interpréter du langage HTML ce n'est pas le cas pour le langage PHP. Il faut se doter d'une technologie de serveur qui exécute le code PHP, le traduit en HTML et le transmet au navigateur du client.

Interpréter du PHP

Pour exécuter du code PHP, nous allons utiliser WAMP, le quatuor incontournable:

  • W indows pour l'OS
  • A pache pour le serveur HTTP
  • M ySQL pour la gestion de base de données
  • P HP pour exécuter le PHP

Pour lancer l’exécution du fichier PHP créé et voir le résultat dans notre navigateur, il faut alors accéder au dossier dans lequel le fichier a été stocké via notre navigateur web en passant par nos serveurs.

Pour cela, il suffit d’ouvrir un nouvel onglet dans notre navigateur favori et de renseigner l’adresse localhost ou encore 127.0.0.1 selon votre système.

Première manipulation

L'instruction echo

Cette instruction permet l'affichage dans un script PHP

🗃️ Script PHP
<? php
echo "<h2> Je suis un nouveau titre</h2>";
echo 30 ;
?>

Remarquez comment est définie la balise php.

Un point c'est tout!

Toutes les instructions PHP finissent par un ;.

Créer des variables

Les variables contiennent des valeurs, de l'information.

En PHP, une variable ne va exister que durant le temps de l’exécution du script l’utilisant.

Déclarer des variables

Toute variable en PHP doit commencer par le signe $ qui sera suivi du nom de la variable.

🗃️ Script PHP
<? php
$nom = "Hugo";
$pnom = "Victor";
$age = 46;
echo $nom ;
?>

Boucle en PHP

On retrouve la notion de boucle pour répéter des instructions. Nous disposons de quatre boucles en PHP:

  • la boucle while
  • la boucle do...while
  • la boucle for
  • la boucle foreach

Le fonctionnement général est toujours le même.

🗃️ Script PHP
<?php
    $x = 0;

    while($x <= 10){
        echo '$x contient la valeur ' .$x. '<br>';
        $x++;
    }
?>
<?php
    for($x = 0; $x <= 5; $x++){    
        echo '$x contient la valeur ' .$x. '<br>';
    }
?>

Structure de contrôle

La modularité est un concept qui permet d'inclure des fichiers annexes à un programme principal. On retrouve cette notion en PHP.

Un site, celui-ci en particulier contient des zones communes à toutes les pages. L'idée est d'encapsuler ce code dans des fichiers puis de les inclure aux différentes pages web qui constituent le site.

La seule et unique différence entre les instructions include et require va se situer dans la réponse du PHP dans le cas ou le fichier ne peut pas être inclus pour une quelconque raison (fichier introuvable, indisponible, etc.).

Inclusion fatale ou pas

L'instruction require lève une erreur fatale si le fichier n'est pas trouvée alors que l'instruction include retourne un simple avertissement.

🗃️ Script PHP
<?php
echo "<h2>Menu inclus avec include</h2> <br>";
include "menu.php";
?>

Les constantes

En créant des constantes avec le mot clé CONST, vous ne pourrez stocker que des données de type string, integer, float, boolean ou array.

On peut aussi utiliser la fonction define(), dont les paramètres sont le nom de la constante et sa valeur.

Une constante

Une fois définie, une constante ne peut pas être modifiée ou détruite.

Il existe des constantes prédéfinies dans le système comme __FILE__,__NAMESPACE__ ou __DIR__...

Les fonctions PHP

La notion de fonction est importante, elle permet d'englober une portion de code avec ses entrées et ses sorties.

Il existe des fonctions internes à PHP et on peut compléter la liste par nos propres créations.

Un exemple de création de fonction sans paramètres:

🗃️ Script PHP
<?php
function bonjour(){
    echo "Bonjour tout le monde:";
}
?>
Il suffit alors d'appeler la fonction dans le script et d'observer son exécution (simple ici...)

🗃️ Script PHP
<?php
bonjour();
?>
Mais on peut sans trop de difficulté, ajouter des paramètres à cette fonction:
🗃️ Script PHP
<?php
function bonjour($n){
    echo "Bonjour" .$n "<br>";
}
$pnom = "Charles";
bonjour($pnom);
?>

Paramètre ou argument

Une fonction est peut être défini avec des paramètres. La valeur prise par ceux-ci lors de l'appel de la fonction s'appelle des arguments.

Lorsqu’on passe une variable comme argument par valeur à une fonction, le fait de modifier la valeur de la variable à l’intérieur de la fonction ne va pas modifier sa valeur à l’extérieur de la fonction.

Parfois, on voudra cependant que nos fonctions puissent modifier la valeur des variables qu’on leur passe en argument. Pour cela, il va falloir passer ces arguments par référence.

🗃️ Script PHP
<?php
// passage par valeurs
$x = 1;
function incrementation_par_valeur($n){
    $n = $n + 1;
    echo "La valeur de la variable est" .$n; ;
}
function incrementation_par_reference(&$n){
    $n = $n + 1;
    echo "La valeur de la variable est" .$n; ;
}
incrementation_par_valeur($x);
incrementation_par_reference($x);
?>
La première fonction ne modifie pas la valeur de la variable $x contrairement à le seconde.

Pas de return en php?

Si nous souhaitons garder en mémoire dans une variable le résultat de l'exécution d'une fonction, il suffit de le retourner avec une `return.

Dans ce cas, aucun résultat ne s'affiche...

Les tableaux en PHP

Structures de stockage indispensables, l'utilisation des tableaux (array) mérite toute notre attention.

Déclarer des tableaux en php

Un exemple:

🗃️ Script PHP
<?php
    $joueurs = array('Jean', 'Bruno', 'Francis', 'Hachem');
    $point_de_vies = [64, 59, 2, 23];
?>

Afficher les valeurs d'un tableau

Pour afficher la valeur d'un tableau, il faut utiliser l'indice de cet élément dans le tableau:

🗃️ Script PHP
<?php
    echo $joueurs[1];
    echo point_de_vies[0];
?>
Pour afficher toutes les valeurs, il faut boucler sur les indices du tableau:

🗃️ Script PHP
<?php
    $taille = count($joueurs);
    for($i=0 ; $i < $taille; $i++){
        echo $joueurs[$i] .';';
    }
?>

On aurait pu créer des tableaux associatifs en associant à chaque joueur ses points de vies. La syntaxe est alors:

🗃️ Script PHP
<?php
    $joueurs = ['Jean'=>64, 'Bruno'=>59, 'Francis'=>2, 'Hachem'=>23];
?>
Et pour afficher tous les couples clefs/valeurs:

🗃️ Script PHP
<?php
foreach($joueurs as $clef => $valeur){
    echo $clef. 'a' .$valeur. 'points de vie.<br>';
}
?>

Les variables super globales

Ces variables sont internes au programme et peuvent être appellées n'importe où. Il en existe neuf: $GLOBALS, $_SERVER, $_REQUEST, $_GET, $_POST, $_FILES, $_ENV, $_COOKIE, $_SESSION.

$GLOBALS

La variable superglobale $GLOBALS est une variable de type tableau associatif qui stocke en fait automatiquement toutes les variables globales déclarées dans le script.

$_SERVER

La variable superglobale $_SERVER contient les variables définies par le serveur.

$_REQUEST

La variable superglobale $_REQUEST va contenir toutes les variables envoyées via les méthodes GET et POST et par les cookies HTTP.

$_ENV

La variable superglobale $_ENV va contenir des informations liées à l’environnement dans lequel s’exécute le script.

$_FILES

La variable superglobale $_FILES va contenir des informations sur un fichier téléchargé, comme le type du fichier, sa taille, son nom, etc.

Les variables superglobales $_GET et $_POST sont relatives aux formulaires HTML: elles stockent les informations envoyées par un formulaire selon la méthode utilisée.

Quant aux variables $_COOKIE et $_SESSION elles sont suffisamment explicites pour comprendre leur rôle...