Pourquoi PHP ?
PHP est un langage de programmation côté serveur populaire et largement utilisé pour le développement web. Il permet aux développeurs de créer des sites Web dynamiques et interactifs en utilisant une syntaxe similaire à celle du langage C ou Java.
Un cas d'usage concret : imaginez que vous vouliez créer un site Web pour vendre des produits. Avec PHP, vous pouvez générer le contenu du site dynamiquement, afficher les produits disponibles, traiter les commandes et gérer les paiements en ligne. En plus de cela, PHP est également utilisé pour développer des applications web backend comme des API RESTful.
Prerequis
Pour commencer à travailler avec PHP, vous aurez besoin des éléments suivants :
- Un serveur Web : Apache ou Nginx
- Un langage de script côté serveur : PHP 7.4 ou ultérieur
- Un outil pour écrire et exécuter le code PHP : un éditeur de texte (VSCode, Sublime Text, Atom) avec la syntaxe syntaxe PHP surlignée
Concepts fondamentaux
Variables et Types de Données
Les variables en PHP commencent toujours par le symbole $. Voici les différents types de données :
- Entiers : Numéros entiers
$age = 25; // Entier
- Flottants (Décimaux) : Nombres à virgule flottante
$prix = 19.99; // Flottant
- Chaînes de caractères (Strings) : Texte
$nom = "John Doe"; // Chaîne de caractères
- Booléens : Vrai ou Faux
$isAdmin = true; // Booléen
Structures de Contrôle
PHP dispose de structures de contrôle comme les boucles et les conditions :
Boucle for
// Affiche tous les nombres de 1 à 5
for ($i = 1; $i <= 5; $i++) {
echo $i . " ";
}
Condition if / else
$age = 20;
if ($age >= 18) {
echo "Majeur";
} else {
echo "Mineur";
}
Fonctions
Une fonction en PHP est définie avec le mot-clé function suivie du nom de la fonction et des paramètres entre parenthèses :
// Définition d'une fonction qui retourne la somme de deux nombres
function addition($a, $b) {
return $a + $b;
}
// Appel de la fonction avec les paramètres 3 et 5
$resultat = addition(3, 5);
echo "La somme est : " . $resultat;
Tableaux
Les tableaux en PHP sont utilisés pour stocker plusieurs valeurs dans une seule variable :
// Création d'un tableau associatif
$personne = array("nom" => "John", "age" => 25);
// Accès à un élément du tableau
echo $personne["nom"]; // Affiche : John
// Ajout d'un nouvel élément au tableau
$personne["ville"] = "New York";
Mise en pratique : projet fil rouge
Nous allons créer un simple gestionnaire de tâches en utilisant PHP. Le projet comprendra les fonctionnalités suivantes :
- Afficher une liste des tâches.
- Ajouter une nouvelle tâche.
- Marquer une tâche comme terminée.
Étape 1 : Structure du Projet
Créer un répertoire pour le projet et insérez les fichiers suivants :
index.phptaches.php
Étape 2 : Afficher la Liste des Tâches
Dans taches.php, définissez un tableau de tâches :
<?php
// taches.php
$taches = [
"Faire les courses",
"Nettoyer la maison",
"Apprendre PHP"
];
?>
Étape 3 : Afficher les Tâches dans index.php
Dans index.php, incluez le fichier taches.php et affichez les tâches :
<?php
// index.php
require 'taches.php';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Gestionnaire de Tâches</title>
</head>
<body>
<h1>liste des tâches</h1>
<ul>
<?php foreach ($taches as $tache) : ?>
<li><?php echo $tache; ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>
Étape 4 : Ajouter une Nouvelle Tâche
Ajoutez un formulaire dans index.php pour ajouter de nouvelles tâches :
<?php
// index.php
require 'taches.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nouvelleTache = $_POST['nouvelleTache'];
if (!empty($nouvelleTache)) {
array_push($taches, $nouvelleTache);
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Gestionnaire de Tâches</title>
</head>
<body>
<h1>liste des tâches</h1>
<ul>
<?php foreach ($taches as $tache) : ?>
<li><?php echo $tache; ?></li>
<?php endforeach; ?>
</ul>
<form method="post" action="">
<input type="text" name="nouvelleTache" placeholder="Ajouter une nouvelle tâche">
<button type="submit">Ajouter</button>
</form>
</body>
</html>
Étape 5 : Sauvegarder les Tâches
Pour que les tâches soient conservées entre les sessions, vous pouvez utiliser le fichier système pour sauvegarder les tâches :
<?php
// index.php
require 'taches.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nouvelleTache = $_POST['nouvelleTache'];
if (!empty($nouvelleTache)) {
array_push($taches, $nouvelleTache);
file_put_contents('taches.txt', implode("\n", $taches));
}
}
// Charger les tâches depuis le fichier
if (file_exists('taches.txt')) {
$taches = explode("\n", file_get_contents('taches.txt'));
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Gestionnaire de Tâches</title>
</head>
<body>
<h1>liste des tâches</h1>
<ul>
<?php foreach ($taches as $tache) : ?>
<li><?php echo $tache; ?></li>
<?php endforeach; ?>
</ul>
<form method="post" action="">
<input type="text" name="nouvelleTache" placeholder="Ajouter une nouvelle tâche">
<button type="submit">Ajouter</button>
</form>
</body>
</html>
Erreurs fréquentes et debugging
Erreur 1 : Variable non définie
## ❌ Mauvais
echo $nom; // Essai d'afficher une variable non définie
## ✅ Correct
$nom = "John";
echo $nom;
Erreur 2 : Syntaxe incorrecte
## ❌ Mauvais
for ($i = 1; $i <= 5; $i++) {
echo $i; // Manque de point-virgule à la fin de la ligne
}
## ✅ Correct
for ($i = 1; $i <= 5; $i++) {
echo $i;
}
Erreur 3 : Erreur d'accès au tableau
## ❌ Mauvais
$personne = array("nom" => "John");
echo $personne["ville"]; // Essai d'accéder à une clé qui n'existe pas
## ✅ Correct
$personne = array("nom" => "John", "ville" => "New York");
echo $personne["ville"];
Pour aller plus loin
- Développement Web Asynchrone avec AJAX : Apprenez à créer des applications web réactives en utilisant JavaScript et PHP.
- Framework PHP : Explorer les frameworks populaires comme Laravel ou Symfony pour accélérer le développement d'applications web complexes.
- Sécurité Web : Découvrez les meilleures pratiques de sécurité pour protéger votre application contre les attaques.
Défi pratique
Créez une petite application qui permet à l'utilisateur de s'inscrire et de se connecter. Utilisez des sessions PHP pour gérer la connexion de l'utilisateur.