PHP : Niveau Intermédiaire

Passez du script simple à une architecture structurée, sécurisée et professionnelle.

Module 1 : Programmation Orientée Objet (POO)

Classes, Héritage et Encapsulation

<?php
class Membre {
    protected string $pseudo;
    private int $experience = 0;

    public function __construct(string $pseudo) {
        $this->pseudo = $pseudo;
    }

    public function gagnerXP(int $points): void {
        $this->experience += $points;
    }

    public function getInfos(): string {
        return "Membre : {$this->pseudo}, XP : {$this->experience}";
    }
}

$winny = new Membre("WinnyKing");
$winny->gagnerXP(50);
echo $winny->getInfos();
?>
Module 2 : Bases de données avec PDO

Connexions et requêtes préparées

PDO (PHP Data Objects) est l'interface universelle pour communiquer avec vos bases de données de façon sécurisée.

<?php
try {
    $dsn = "mysql:host=localhost;dbname=tuto;charset=utf8mb4";
    $pdo = new PDO($dsn, "user_db", "pass_db", [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]);

    // Requête préparée (Protection contre les injections SQL)
    $stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
    $stmt->execute(['email' => 'winny@king.fr']);
    $user = $stmt->fetch();
} catch (PDOException $e) {
    echo "Erreur : " . $e->getMessage();
}
?>
Module 3 : Gestion des Sessions & Cookies

Maintenir l'état de l'utilisateur

<?php
// Démarrage sécurisé
session_start([
    'cookie_httponly' => true,
    'cookie_secure' => true, // Si HTTPS
    'use_only_cookies' => true,
]);

$_SESSION['user_id'] = 123;

// Cookie de préférence (valable 30 jours)
setcookie("theme", "dark", time() + 3600 * 24 * 30, "/", "", true, true);
?>
Module 4 : Espaces de noms (Namespaces)

Organiser et éviter les conflits

<?php
namespace App\Controllers;

use App\Models\User; // Importation d'une classe d'un autre namespace

class AuthController {
    public function login() {
        $user = new User();
        // ...
    }
}
?>
Module 5 : Composer & Autoloading

Gérer les dépendances (Standard PSR-4)

Utilisez Composer pour installer des bibliothèques tierces et automatiser le chargement de vos classes sans multiplier les require.

// Dans votre composer.json
{
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}
Module 6 : Manipulation du système de fichiers

Fichiers, Dossiers et Dates

<?php
// Écrire dans un log
file_put_contents('app.log', "Action à " . date('H:i:s') . "\n", FILE_APPEND);

// Manipulation de dates avec l'objet DateTime
$date = new DateTime('now');
$date->add(new DateInterval('P7D')); // Ajoute 7 jours
echo $date->format('d/m/Y');
?>
Module 7 : Sécurité de base

Éviter les erreurs classiques

La sécurité commence par la méfiance envers toutes les données venant de l'extérieur.

<?php
// 1. Hachage de mot de passe (JAMAIS en clair)
$hash = password_hash("mon_pass_secret", PASSWORD_ARGON2ID);

// 2. Vérification
if (password_verify($saisie_user, $hash)) {
    echo "Connecté !";
}

// 3. Éviter XSS
echo htmlspecialchars($pseudo_depuis_db, ENT_QUOTES, 'UTF-8');
?>
Niveau Précédent : Débutant Niveau Suivant : Expert