1- Introduction

L’histoire de PHP

Le PHP est un langage créé par Rasmus Lerdorf en 1994. C’est un langage non compilé créé à l'origine pour rendre des pages web dynamiques permettant d'inclure des variables, des conditions et des boucles dans du HTML en écrivant directement du code PHP au milieu du HTML. Il est donc créé à l'origine comme un langage de templating (l'équivalent aujourd'hui de TWIG et Smarty), procédural et très peu typé, permettant d'afficher des variables sur le web au dessus d'un programme en C. Le PHP n'était donc pas du tout prévu pour programmer une logique métier, puisque son fondateur voulait juste fournir une API pour le web pour des programmes codés en C.

Néanmoins, le C étant laborieux et peu populaire à l'époque, les gens ont vite codé la logique métier en PHP contre les attentes de son créateur pour qui cela devait être codé dans un langage typé et compilé. Le PHP, porté par la croissance exponentielle du Web, en plus de sa simplicité par rapport au C (pas de pointeurs, pas de types...) devint rapidement très populaire et son créateur a rapidement dû s'adapter et répondre à la demande des utilisateurs : permettre à PHP d'être un langage permettant de développer la couche métier. Peu à peu il devient donc un véritable langage de programmation orienté objet et de plus en plus typé, et se complexifie.

Les gains de PHP 7 par rapport à PHP 5

Tout d'abord, les améliorations portent sur une amélioration radicale des performance du moteur :

  • Plus de 100% de gains de rapidité d'exécution
  • Beaucoup moins d'utilisation de la mémoire (une boucle générant 100 000 arrays d'arrays qui prenait 109Mo ne prend que 42M sur PHP7 et 6M sur PHP7 avec opcache).

Aujourd’hui, c’est un des langages backend les plus utilisés au monde (et le premier sur le web de loin), et il devient de plus en plus typé depuis la version 5 puis 7.x (actuelle). Actuellement, version 8.0 est en développement et la dernière version stable est la version 7.4.

Pour aller plus loin, voici la liste des fonctionnalités apportées par PHP 7.

Les composantes du langage

Un langage informatique nous permet de communiquer avec un ordinateur. Le but d’un langage est de pouvoir transmettre une information et il faut certaines règles afin de structurer la pensée que l’on veut transmettre. Les langages informatiques fonctionnent de la même manière : certaines règles doivent être respectées pour transmettre l’information.

Le seul langage que comprends et parle l’ordinateur est le langage machine mais communiquer en binaire est trop fastidieux pour nous : il faut donc un intermédiaire, ce sont les langages de programmation. Les développeurs utilisent donc ces langages qui vont ensuite être traduits en langage machine pour l’ordinateur, et ce processus est automatique.

Le PHP (acronyme récursif qui signifie PHP Hypertext Processor) est un langage de scripts Open Source et spécialement conçu pour le développement d’applications web. Pour être interprété, le PHP doit être situé dans un script après le tag <?php et ce qui est situé après le tag ?> ne sera plus exécuté en tant que PHP. Tout ce qui est inséré entre ces deux balises sera interprété comme du PHP sauf ce qui est commenté. Pour commenter du code sur une ligne, il suffit d’ajouter // devant, ou de le mettre entre /** et */.

<?php
// ceci est un commentaire sur une ligne
echo "PHP here ! "; // <-ceci est du php
/**
* Commentaire
* sur
* plusieurs
* lignes
*/
?>

En outre, toute instruction PHP doit finir par un point virgule.

Même s’il n’est pas obligatoire d’indenter le code (comme en Python par exemple) il est tout de même très fortement conseillé de le faire, car il sera illisible le cas échéant. Indenter signifie décaler vers la droite chaque niveau de contenu d’une structure (boucle, fonction…).

Il n’est plus nécessaire de refermer le tag PHP lorsqu’un script (.php) finit par du PHP.

Le code PHP est exécuté sur le serveur, à la différence du javascript qui est interprété par le navigateur. Ainsi, le client ne peut accéder qu’aux informations qu’on lui expose, ce qui permet de facilement gérer la sécurité des applications. Le PHP a été conçu pour être facile à apprendre pour un néophyte mais également pour proposer des fonctionnalités avancées pour un expert.

Le langage PHP n’est pas compilé, il est donc très facilement utilisable sans devoir passer par l’étape de compilation, mais cela induit que les éventuelles erreurs sont découvertes lors de l’exécution. Le PHP est orienté objet, mais dans la première partie de ce cours, nous allons nous intéresser à la partie algorithmique procédurale qui nous permettra d'acquérir tous les outils dont nous avons besoin pour effectuer des traitements : Utiliser les variables, les conditions, les fonctions, les boucles, lire des fichiers, afficher des valeurs etc... Ce cours n’a pas vocation à être exhaustif puisqu’il est une initiation et qu’il est inutile d’entrer dans les détails et la complexité avant de comprendre les concepts principaux et simples de la programmation (il y a la documentation pour cela).

Liens incontournables

Documentation PHP :

  • http://php.net/manual/
  • https://www.w3schools.com/php7/

Bonnes pratiques :

  • https://www.php-fig.org
  • https://phptherightway.com/
  • https://12factor.net/codebase