PHP

Une page de Vikidia, l’encyclopédie junior
(Redirigé depuis Langage PHP)
Aller à la navigation Aller à la recherche
Le logo de PHP

Le langage PHP (PHP Hypertext Preprocessor, en français Préprocesseur Hypertexte PHP) est un langage de programmation « côté serveur » qui permet de créer des sites Web dynamiques, c'est à dire que les informations qui s'y trouvent peuvent être changées sans que le propriétaire du site ne touche aux fichiers de son site. Le fait qu'il soit côté serveur signifie que la page Web est créée par le serveur avant d'être envoyée au navigateur. Cela permet par exemple d'afficher du contenu personnalisé (selon l'utilisateur, la ville où il se trouve, l’heure qu’il est, etc.).

Par exemple, on peut avoir une simple page Web qui demande le prénom de l’utilisateur. Quand on valide, elle envoie le prénom au serveur qui va s’en servir pour fabriquer une autre page, personnalisée (elle pourra dire bonjour avec le prénom). Cette page de réponse est au départ écrite en PHP : le serveur met le prénom de l’utilisateur au bon endroit ; ce faisant, il transforme la page PHP en une page Web « normale » (en HTML). Il n’a plus qu’à la renvoyer au navigateur de l’utilisateur qui va l’afficher.

Il est souvent utilisé avec JavaScript, un langage de programmation côté client, permettant d'interagir avec le site Internet.

Hello World[modifier | modifier le wikicode]

Voilà le traditionnel Hello World.

<?php
    echo "Hello World";
?>

Le mot-clef echo affiche le texte se trouvant à coté, entre guillemets

Exemple[modifier | modifier le wikicode]

Voici l'illustration de l'exemple de l'introduction :

Du côté de l’utilisateur, on a une page HTML qui demande le prénom avec un formulaire. Elle affiche la phrase « Votre prénom est : » suivie d’un champ où l’utilisateur peut écrire son prénom. Pour valider, il suffit de cliquer sur un bouton « Valider » situé après le champ de texte.

Du côté serveur, on a PHP qui traite les informations envoyées depuis le formulaire précédent. Ces informations (ici, le prénom) sont contenues dans une variable, qui est en fait un tableau nommé _POST. On utilise le mot-clé echo pour dire au serveur d'afficher un texte, ici « Bonjour, $_POST['prenom'] ! ». Si le prénom envoyé est « Jules », le serveur remplacera $_POST['prenom'] par Jules et créera donc une page Web où l’on pourra lire « Bonjour, Jules ! ».

Le code complet de la page PHP :

<?php
    echo "Bonjour, ".$_POST['prenom']." !";
?>

Si ce code se situe dans une page web html, le fichier de la page HTML aura l'extension .php mais contiendra du HTML et son code ressemblera à ça :

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8"/>
    </head>
    <body>
        <form method="POST">
            <input type="text" name="prenom" placeholder="Entre ton prénom"/>
            <input type="submit"/>
        </form>
        <p>
            <?php
                echo "Bonjour, ".$_POST['prenom']." !";
            ?>
        </p>
    </body>
</html>

Comme on peut le voir ci-dessus, on délimite du code PHP par les balises <?php et ?> ou par <? et ?>. Par contre, tout autre code en dehors de ces balises ne sera pas traité par PHP et ne changera (à priori) jamais.

Notons que dans une page html, le code PHP peut s'insérer n'importe où.

Avec la Programmation Orientée Objet (acronyme de POO)[modifier | modifier le wikicode]

Le PHP est un langage hybride, c'est à dire à la fois procédural et objet. La version procédurale est disponible sur toutes les versions PHP. Quant à la POO, elle a été développée depuis peu, néanmoins, elle est plus accessible sur PHP 5 : elle ajoute plus facilement des fonctionnalités objets, notamment le chargement dynamique d'une classe. Le langage objet aborde d'autres notions tels que la classe, l'objet, l'héritage ou le polymorphisme. Voici un exemple :

<?php
    // Déclaration d'une classe langage
    class Informatique 
    {
        // Propriétés
        
        // Variable privée (encapsulation) contenant le nom du langage
        private $nom = "    ";
        
        // Variable publique contenant le type des langages (de programmation)
        public $type = "programmation";
        
        // Méthode avec tentative de modification de la variable privée    
        public function setNom()
        {
            // récupérer le nom du langage de programmation (PHP, C ou Python) dans l'URL
            $nom = $_GET ['Nom'];
        }
        
        // Méthode avec tentative de lecture de la variable privée
        // ayant pour but d'afficher le "Hello World" approprié 
        public function getAffiche_hello_world()
        {
            if ($nom == PHP)
            {
                echo "\n";
                echo "Avec $this->nom : echo \"Hello World\";";
            }
            else if ($nom == C)
            {
                echo "\n";
                echo "Avec $this->nom : printf(\"Hello World\");";
            }
            else if ($nom == Python)
            {
                echo "\n";
                echo "Avec $this->nom : print(\"Hello World\")";
            }
            else
            {
                echo "\n";
                echo "Erreur";
            }
            // Remarque : \n signifie un retour à la ligne.
        }
    }
    
    // Programme    
    
    // Création de l'objet "langage_informatique", 
    // l'objet est alors une instance de la classe "Informatique".
    $langage_informatique = new Informatique();
    
     // Utilisation de la méthode "setNom()"
    $langage->setNom();
    
     // Utilisation de la méthode "getAffiche_hello_world"
    $langage->getAffiche_hello_world();
?>

Explication des notions de base[modifier | modifier le wikicode]

En POO, nous abordons des bases extrêmement importantes : la classe, les propriétés, les méthodes et les objets. Avec ces bases, on peut avancer vers l'héritage, get et set, la surcharge, la référence, les ::, le clonage, les classes abstraites (ainsi que les méthodes), les interfaces, les exceptions, les traits, les classes finales et bien sûr d'autres notions avancés.

La classe[modifier | modifier le wikicode]

La classe est le modèle d'un objet (et la description). Elle contient des propriétés pour leur usage dans les méthodes.

Les propriétés[modifier | modifier le wikicode]

Les propriétés sont des constantes, variables que la classe possède. Les propriétés sont de 5 grands types :

  1. Publiques : La propriété est accessible via n'importe où
  2. Protégés : La propriété est accessible avec l'héritage
  3. Privés : La propriété est non accessible, c'est la notion. Sa lecture ou sa modification est accessible via GET et SET.
  4. Constantes : Celle-ci ne peuvent point changer. Sa récupération se fait via ::
  5. Statiques (obligatoirement avec les autres type) : La propriété est statique, il n'y a pas besoin d'une instance

Les méthodes[modifier | modifier le wikicode]

Les méthodes contiennent les instructions à faire. Ce sont des fonctions. Les méthodes possèdent également des types, comme celles des propriétés, mais aussi d'autres, comme abstraction ou la méthode finales.

Les objets[modifier | modifier le wikicode]

Un objet est construit avec un modèle, la classe. Celle-ci décrit comment est l'objet. La construction se fait à partir de "new" :

$vikidia = new Site();
// Dans les paramètres, on pourrait insérer la valeur des propriétés.

Les bases de données[modifier | modifier le wikicode]

Les bases de données sont des interfaces qui servent à stocker des informations dans des tableaux afin de les mémoriser et pouvoir faire des choses avec ses informations. PHP sait très bien dialoguer avec la BDD (base de données), c'est pourquoi il est utilisé pour faire des requêtes SQL. Côté programmation, les bases de données sont gérées avec la POO, plus précisément les BDD abordent surtout les exceptions. Par contre, on accède aux BDD avec un langage spécifique : le SQL. Ce langage spécifique est utilisable aussi dans les autres langages.

Utilisation[modifier | modifier le wikicode]

PHP a de nombreuses utilités. Citons par exemple :

  • faire des jeux en PHP ;
  • faire des sites d'achat en ligne ;
  • faire des tchats, des quiz, des livres d'or ;
  • faire un espace membre sur un site ;
  • et bien d'autres...

Voir aussi[modifier | modifier le wikicode]

Langages de programmation.svg
Les langages de l’informatique
Portail de l'informatique —  Tous les articles sur son histoire, les logiciels, Internet…