Le développement web en PHP est composé de 3 couches :
- couche serveur HTTP (Apache, Nginx, IIS...)
- couche langage (PHP et extensions)
- couche BDD (MySQL, PostgreSQL...)
Vous utiliserez l'éditeur de code VSCode en effectuant les modifications suivantes après installation :
- Supprimez l'extension
PHP Intellisense - Installez l'extension
PHP Intelephense
Nous allons installer l'environnement de développement nécessaire.
- Téléchargez XAMPP et installez la version avec PHP 7.3 (https://www.apachefriends.org/fr/download.html). XAMPP contient un stack AMP tout prêt : un serveur Apache, le langage PHP et des extensions classiques (php-cli, php-xml, php-mbstring...), et une base de données MySQL ou MariaDB.
Pour vérifier que PHP est installé, ouvre un terminal et saisissez : php -v.
- Maintenant que XAMPP est installé, lancez-le et activez Apache.
- Nous allons créer notre premier fichier PHP: ouvrez le dossier
c:/xampp/htdocs/et créez dedans un fichierhello.php. - Dans ce fichier, saisissez le code suivant :
<?php echo "Hello world;"; ?>- Par défaut, le port de Apache est le port 80 (HTTP). Ouvrez donc l'URL suivante:
http://localhost:80.
- Afin de voir la configuration de PHP en cours, nous allons créer un fichier
phpinfo.phpet saisir dedans :
<?php phpinfo(); ?>- Accédez à ce fichier. Il nous présente toute la configuration en cours pour notre instance de PHP.
- Nous allons installer une extension de PHP nous permettant d'afficher les erreurs d'une meilleure façon: Xdebug.
- Copiez-collez le contenu de la page HTML du
phpinfodans le formulaire de la page suivante : https://xdebug.org/wizard.php. Le site vous retournera les instructions d'installation pour configurer Xdebug sur votre ordinateur, suivez-les !
Créez un nouveau fichier PHP et réalisez les exercices suivants :
- Déclaration de variables et typage dynamique, et débuguage de code
/**
* 1. Déclarer ces deux variables et les débuguer avec var_dump :
* => nombre = 123
* => texte = "hello world"
*/
$nombre =
$texte =
var_dump($nombre, $texte);- Concaténation : liez deux variables ainsi
$var1 . $var2.
/**
* 2. a. Ajoutez 32 à la variable nombre
* 2. b. Transformez la variable $texte en "hello world, cette variable est écrite en PHP." en utilisant la concaténation
*
* Ensuite, débuguez les avec var_dump.
*/
$nombre =
$texte =
var_dump($nombre, $texte);- Déclarez un tableau avec une des deux structures suivantes :
$array = ['value1', 'value2', 'value3'];
$array = array('value1', 'value2', 'value3'); // Deprecated/**
* 3. a. Déclarez un tableau simple :
* => "tomates", "navets", "carottes", "oignons"
* 3. b. Affichez dans un var_dump la valeur "carotte".
*/
$tableauSimple =
var_dump(...);- Déclarez un tableau associatif avec la structure suivante :
$array = [
'key1' => 'value1',
'key2' => 'value2,
];/**
* 4. a. Déclarez un tableau associatif, qui contient des données utilisateur en clés (nom, prénom, adresse).
* 4. b. Affichez dans un var_dump la valeur de "prénom".
*/
$tableauAssociatif =
var_dump(...);- Créez un tableau multi-dimensionnel avec la structure suivante :
$array = [
'key1' => [
'value1',
'value2',
],
'key2' => [
'value1',
'value2',
],,
];/**
* 5. a. Déclarez un tableau multi-dimentionnel, qui contient des saisons, lesquelles contiennent des 2 légumes, lesquels contiennent les clés "quantité" et "prix"
* 5. b. Affichez dans un var_dump le prix d'un légume d'été.
*/
$tableauMultidimentionnel =
var_dump(...);- Rédigez une condition avec la structure suivante :
if ($a <= 10) {
echo "la valeur est inférieure ou égale à 10"; // echo permet d'afficher du texte
}/**
* 6. a. Déclarez nombre et donnez lui une valeur numérique.
* 6. b. Ecrivez une condition : si nombre est inférieur à 100, affichez "trop petit", sinon, affichez "ok c'est bon".
*/
$nombre =
if...- Découvrez la documentation PHP et essayez de résoudre l'exercice grâce à la doc de la fonction
date(): https://php.net/manual/fr/function.date.php
/**
* 7. a. Déclarez une variable "year" qui contiendra l'année actuelle, grâce à la fonction date()
* 7. b. Ecrivez une condition : si l'année actuelle (avec $year) est 2019, affichez "bonne année !", sinon "mauvaise année."
*/
$year =
if...- Conditions
/**
* 8. a. Testez si $year est bissextile (modulo 4). Si oui, affichez "$year est bissextile", sinon "$year n'est pas bissextile"
*/
if...- Conditions ternaires : découvrez une autre manière de rédiger une condition en PHP
/**
* 9. a. Créez une variable $age contenant un âge
* 9. b. Faites une condition ternaire ( $var = (condition) ? valeur_si_vrai : valeur_si_faux; ) qui enregistrera dans une variable
* $statut "majeur" si l'âge est >= 18 ans, "mineur" sinon.
*/
$age =
$statut =- Passez un array dans une boucle
/**
* 10. Reprenez le tableau 3 (tableau simple) et affichez chaque élément grace à une boucle foreach de cette façon:
* "Elément 0 : xxx"
* "Elément 1 : xxx"
* ...
*
* N'oubliez pas les <br> pour les sauts de ligne !
*
* Rappel : foreach ($array as $key => $value) { echo $value; }
*/
foreach ...- Affichez du HTML avec PHP et une boucle
/**
* 11. Reprenez le tableau 4 (array associatif) et affichez dans un <ul><li> les éléments de l'utilisateur, par exemple:
*
* - Nom : John
* - Prénom : Doe
* - Adresse : 14 rue des champs
*
* Attention au placement des "ul" et des "li", lesquelles dois-je mettre dans le foreach, lesquels à l'exterieur ?
* Rappel : foreach ($array as $key => $value) { ... }
*/
foreach ...- Réalisez une boucle dans une boucle avec PHP
/**
* 12. Reprenez le tableau 5 (array multidimentionnel) et affichez :
*
* - Ete
* - Fruit 1 : (quantité : 3 , prix : 10€)
* - Fruit 2 : (quantité : 3 , prix : 10€)
* * - Automne
* - Fruit 1 : (quantité : 3 , prix : 10€)
* - Fruit 2 : (quantité : 3 , prix : 10€)
* ...
*
* Attention: il y a un foreach pour chaque "sous-tableau". Attention au nommage des variables intermédiaires ($key => $value) de telle sorte
* que vous vous rappeliez bien du contenu de chacune.
*
* Rappel : foreach ($array as $key => $value) { ... }
*/
foreach ...- Rédigez des fonctions en PHP
/**
* 13. Fonctions
* a. Ecrire une fonction qui ne prend pas d'arguments, qui affichera "hello world" et qui retournera "true".
* b. Ecrire une fonction à 1 argument, qui retournera l'argument en majuscules.
* c. Ecrire une fonction à 2 arguments, qui comparera les deux nombres et retournera le plus grand des deux.
*/
function hello() {}
function maj($texte) {}
function compare($a, $b) {}- Typage d'arguments
/**
* 14. Validations
* a. Prenez la fonction 13b. et typez les arguments : testez les cas d'erreur.
* b. Prenez la fonction 13c. et typez les arguments : testez les cas d'erreur.
*/
function maj(string $texte) {}
function compare(int $a, int $b) {}