Vous êtes sur la page 1sur 2

TC6 - Gestion du développement

et de la sécurité d’une solution TH2 - P03 – Structurer le code


applicative

Partie 1 : include et require


Partie cours : Les inclusions de fichiers dans une page avec require() et include()
Comme vous l’avez vu nous faisons face à du code redondant dans chacune des pages (Connexion à la
base de données, appel de fonction générique ou utilitaires …)
La redondance est l’ennemi de l’informaticien
Plutôt que de réécrire à chaque fois le code, nous allons utiliser des fonctions capables d'inclure (importer)
le code dans la page. Il s'agit des fonctions include() et require() !
La seule différence entre ces fonctions réside dans la gestion des erreurs.
- La fonction include() renverra une erreur de type WARNING si elle n'arrive pas à ouvrir le fichier
qu’elle veut inclure. Un warning signifie que le code qui suit l’inclusion dans la page sera exécuté.
- La fonction require() affichera une erreur de type FATAL qui interrompt l'exécution du script.
Ces deux fonctions prennent un seul paramètre de type chaîne de caractères : le chemin qui mène au
fichier à inclure.
// Inclure avec require()
require('fichier.php');

// Inclure avec include()


include('fichier.php');

Lorsqu'un fichier est inclus, les variables, constantes, objets, tableaux, fonctions, classes, objets du fichier
inclus peuvent être réutilisés dans la suite du programme.
Par exemple : "config.php" :
<?php
return array(
"host" => "bdd.dombtsig.local",
"dbname" => "NOM_DE_LA_BASE",
"user" => "UTILISATEUR",
"password" => "MOT DE PASSE"
);

La page "bdd.php", dans le même dossier que config.php :


// Connexion à la base de données avec PDO
function getConnecteurBDD()
{
$settings = include("config.php");

$pdo = new PDO("mysql:host=${settings['host']};dbname=$


{settings['dbname']};charset=utf8", $settings['user'], $settings['password'], [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
return $pdo;
}

1
require_once(), include_once()
Les fonctions require_once() et require_once() permettent d’inclure une fois seulement un fichier même s'il
y'a plusieurs tentatives d'inclusion du fichier dans la page.

Partie 2 : Structure des pages et arborescence


Il est temps désormais de structurer notre site !
Déjà l’arborescence ! Voici l’arborescence que nous allons mettre en place. Nous ne sommes pas encore
sur un modèle MVC pur mais nous nous en approchons !!

controleur : Généralement des méthodes (ou des actions) qui correspondent


aux différentes fonctionnalités de l’application. Par exemple,
"ProductController" pour gérer les opérations liées aux produits,
"CartController" pour gérer le panier, "UserController" pour gérer les
utilisateurs, etc.
Le contrôleur s’occupe du lien entre la vue et le modèle.
modele : contient principalement
- classes de données (Entités) : Ces classes représentent
généralement les entités métier de l’application. Par exemple, classes
comme "Product", "User", "Order"
- Classes d'accès aux données (DAO ou Repositories) : Ces classes
sont responsables de l'interaction avec la base de données ou tout
autre mécanisme de stockage de données. Elles encapsulent la
logique d'accès aux données et fournissent des méthodes pour
effectuer des opérations CRUD (Create, Read, Update, Delete).
outil : contient les méthodes utilitaires
vue : contient toute la partie affichage (HTML) ou publique (img, css, js)

Le point d'entrée (entry-point) : index.php


Le point d'entrée sera un fichier PHP, mais il agira comme un routeur. Un routeur est un morceau de code
informatique qui permet l'affichage de la bonne page au bon moment.
Exercice : Commentez le code de notre page d’accueil
<?php
//
include('view/header.php');

//
$whitelist = array('home','bart');

//
if(isset($_GET['page']) && in_array($_GET['page'], $whitelist)) {
include("controler/" . $_GET['page'] . '.php');
} else {
include('controler/home.php');
}

//
include('view/footer.php');
?>

Vous aimerez peut-être aussi