Leçon 1 / 15

Définir le périmètre et les données du carnet

15 min PHP 8 — structurer une application (PDO, POO, sessions) Gratuit

Objectif : Décrire les opérations du carnet et les champs nécessaires à un contact.

Un carnet privé doit faire plus qu’afficher une liste : vous devez pouvoir retrouver un contact, corriger ses coordonnées et retirer une fiche devenue inutile. Sans périmètre précis, les pages et la base risquent de gérer des données différentes. Dans cette leçon, vous fixez les opérations du carnet et le contenu d’une fiche avant de construire l’application.

Délimiter les opérations

Le projet gère cinq cas d’usage : lister, ajouter, modifier, supprimer et rechercher un contact. La liste est le point de consultation principal. L’ajout crée une nouvelle fiche, la modification corrige une fiche existante et la suppression la retire du carnet. La recherche réduit la liste à des fiches correspondant au texte saisi.

  • Lister : consulter les contacts enregistrés.
  • Ajouter : enregistrer une nouvelle fiche à partir d’un formulaire.
  • Modifier : charger une fiche, puis enregistrer ses nouvelles coordonnées.
  • Supprimer : retirer la fiche choisie.
  • Rechercher : filtrer les contacts à partir de leurs coordonnées.

Ces opérations sont le périmètre fonctionnel de la première version : elles indiquent ce que l’application doit permettre, sans décider encore comment chaque traitement sera programmé. Le carnet étant privé, son utilisation sera protégée par une connexion. La gestion du mot de passe et des sessions appartient à des leçons ultérieures ; vous n’ajoutez donc pas ici de champ de mot de passe à chaque contact.

Définir les données d’un contact

Chaque fiche contient un identifiant, un nom, une adresse de courriel et un numéro de téléphone. L’identifiant distingue les fiches, y compris lorsque plusieurs personnes portent le même nom. Le nom est indispensable pour reconnaître une fiche ; le courriel et le téléphone sont facultatifs, car vous pouvez vouloir conserver un contact sans disposer de ces coordonnées.

ChampRôleContrainte retenue
idIdentifiant de la ficheEntier unique généré par la base
nomNom affiché dans la listeObligatoire, jusqu’à 150 caractères
courrielAdresse de courrielFacultative, jusqu’à 254 caractères
telephoneNuméro de téléphoneFacultatif, jusqu’à 40 caractères

Les longueurs proposées donnent une limite explicite aux champs textuels et conviennent au formulaire prévu dans le projet. Le téléphone reste du texte : il peut contenir un indicatif, des espaces ou un signe « + », et n’est pas destiné à être utilisé dans un calcul. Les coordonnées ne sont pas déclarées uniques : deux contacts peuvent partager une adresse ou un numéro, selon votre situation.

SQL
CREATE TABLE contacts (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    nom VARCHAR(150) NOT NULL,
    courriel VARCHAR(254) NULL,
    telephone VARCHAR(40) NULL,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Cette commande crée la table contacts dans la base MySQL que vous avez sélectionnée avant de l’exécuter. La clé primaire garantit un identifiant par fiche et l’auto-incrémentation en attribue un lors d’un ajout. NOT NULL impose la présence du nom ; NULL autorise l’absence de courriel ou de téléphone. L’encodage utf8mb4 permet de stocker correctement les caractères français et les accents.

Suivre le parcours d’une requête

Pour afficher les contacts, une personne ouvre une page du carnet. Le traitement PHP reçoit la demande, obtient les données nécessaires auprès de la base, puis transmet le résultat à la partie qui construit la page HTML. Pour un ajout, le parcours part du formulaire : la page transmet les champs, le traitement demande leur enregistrement et l’application peut ensuite afficher une confirmation ou revenir à la liste.

  1. La page reçoit une action ou des valeurs de formulaire.
  2. Le traitement PHP décide des opérations à effectuer.
  3. La base de données fournit ou enregistre les données du carnet.
  4. La réponse présente la liste, le formulaire ou un message à la personne.

La séparation entre traitement et affichage évite de mélanger les décisions de l’application et le HTML. Vous retrouverez ce flux dans la structure du projet, puis vous apprendrez à le mettre en œuvre avec des classes et PDO. À ce stade, retenez surtout que chaque opération porte sur les mêmes champs et que la base constitue leur stockage durable.

À retenir

  • Le périmètre du carnet comprend la liste, l’ajout, la modification, la suppression et la recherche.
  • Une fiche comporte un identifiant, un nom obligatoire, un courriel facultatif et un téléphone facultatif.
  • La table MySQL reprend ces champs et fixe des contraintes cohérentes avec les formulaires du projet.
  • Une requête suit le parcours page, traitement PHP, base de données, puis affichage.

Dans la prochaine leçon, vous organiserez les fichiers du projet pour accueillir ces responsabilités.

Envie d'aller plus loin ?

Les cours Enovatic sont gratuits et le resteront. Si vous cherchez un accompagnement encadré, nos formations professionnelles sont animées par les mêmes formateurs.