Sous-solP PHPPièce 7/7Mémo

PHP

Mémo de PHP 8.5, du serveur intégré à PDO et Composer, avec des tableaux et des extraits courts.

Ce mémo résume les bases de PHP. Chaque section renvoie au cours qui l'explique en détail.

Lancer et afficher

Commande ou codeEffet
php -vAffiche la version installée.
php -S localhost:8000Serveur de développement dans le dossier courant.
php -S localhost:8000 -t public/Idem, avec public/ comme racine.
<?php echo "Salut"; ?>Affiche du texte.
<?= $titre ?>Raccourci de echo dans du HTML.

Détails : Premiers pas en PHP.

Types, chaînes et conditions

TypeExemple
string"Tarte"
int45
float4.5
booltrue
nullnull
$nom = "Léa";
echo "Bonjour $nom";            // variable remplacée entre guillemets doubles
echo "Bonjour " . $nom;         // concaténation
echo $photo ?? "defaut.jpg";    // valeur de secours

$libelle = match ($categorie) {
    "dessert" => "Pour finir",
    default => "Autre",
};

Compare avec ===. Détails : Types, chaînes et conditions.

Tableaux et boucles

$recette = ["titre" => "Crêpes", "duree" => 30];

foreach ($recettes as $recette) {
    echo $recette["titre"];
}

for ($i = 1; $i <= 3; $i++) { echo $i; }
FonctionRôle
count($t)Nombre d'éléments.
in_array($v, $t)La valeur est-elle présente ?
implode(", ", $t)Tableau en texte.
array_map($f, $t)Applique une fonction à chaque élément.
isset($t["cle"])La clé existe-t-elle et n'est-elle pas null ?

Détails : Boucles et tableaux.

Fonctions et classes

<?php
declare(strict_types=1);

namespace App;

function duree(int $minutes): string { return "$minutes min"; }

class Recette
{
    public function __construct(
        public string $titre,
        public readonly int $duree = 30,
    ) {}
}

$r = new Recette("Crêpes");
echo $r->titre;
ÉcritureSens
?stringChaîne ou null.
int|stringEntier ou chaîne.
voidNe renvoie rien.

Détails : Fonctions et objets.

Formulaires

$titre = trim($_POST["titre"] ?? "");
$duree = filter_var($_POST["duree"] ?? "", FILTER_VALIDATE_INT);

echo htmlspecialchars($titre, ENT_QUOTES, "UTF-8");

header("Location: /recettes.php");
exit;
SuperglobaleContenu
$_GETParamètres de l'adresse.
$_POSTDonnées d'un formulaire en POST.
$_SERVER["REQUEST_METHOD"]"GET" ou "POST".

Détails : Formulaires et sécurité.

PDO et Composer

$pdo = new PDO("sqlite:recettes.db", null, null, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);

$stmt = $pdo->prepare("SELECT * FROM recettes WHERE duree <= :max");
$stmt->execute(["max" => 45]);
$lignes = $stmt->fetchAll();
composer init
composer require vendor/paquet
composer dump-autoload
composer.json
{ "autoload": { "psr-4": { "App\\": "src/" } } }

Détails : Base de données avec PDO et Composer.

Sources officielles

Ensuite

Projet
Lignes de code
Niveau
Sous-sol
Appartement
PHP
Pièce
7/7
Plan n°
php/index
Lignes de code · fiches rédigées à partir des documentations officielles, sources citées en bas de chaque page.