Vous êtes sur la page 1sur 14

COURS Développement web PHP

CHAP 1: Les bases - Introduction et


structure du site

1.0 Introduction
Nous allons lors de ce cours créer un site de gestion de livres.
Avant de commencer, nous allons installer un éditeur de code (je vous conseille
VSCODE) ensuite vous allez installer XAMPP et le configurer, vous pouvez
définir votre port si vous voulez.

Lors de ce cours nous allons proposer une structure d’un site complet en PHP
nous allons utiliser l’architecture MVC, de la méthode de programmation POO
associée à une base de donnée mysql.
➢ Structure du site: Créer une structure basique d’un site Web.
➢ Programmation orientée objet: Structurer les données et les traitements en
POO.
➢ Base de données MySQL: ajouter des bases de données gérées en PDO.
➢ Architecture MVC: modifier l’architecture pour être conforme au MVC.
➢ CRUD: réaliser les traitements, d’affichage, d’ajout, de modification, et
de suppression de livres présents dans une BD.

1.1 STRUCTURE GÉNÉRALE DU SITE

Nous allons définir la structure global du DOM en suite nous allons:


1. créer un dossier nommé bibliotheque dans le répertoire htdoc.
2. Créer le fichier index.php
1.2 IMPLÉMENTATION:

1.2.1 Page d’accueille:


objectifs:
Nous allons
1. Générer une structure html de base
2. Ajouter des thèmes de bootstrap
3. Ajouter un Menu pour le site de la bibliothèque.

Dans le fichier index.php nous avons le code suivant:

<?php ob_start()?>
Voici le contenu de ma page d accueill
<?php
$content = ob_get_clean();
$titre="page d acceuille";
require "template.php";
?>

les extensions dont vous avez besoin sont: phpdebeug et phpentelephense.

1.2.2 Template de base:


Objectif:
1. Uniformiser la structure générale du site (avoir pratiquement une
structure commune à toutes les pages du site )
2. Modifier le fichier index.php pour utiliser template grâce au buffer

Dans le fichier livres.php , nous avons le code suivant:


Objectif:

<?php ob_start() ?>

ici le contenu de ma page listant les livres

<?php
$content = ob_get_clean();
$titre = "Les livres de la bibliothèque";
require "template.php";
?>

➢ Dans le fichier templates.php , nous avons:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,
initial-scale=1.0">
<link rel="stylesheet"
href="https://bootswatch.com/5/quartz/bootstrap.min.css">
<title>Document</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<button class="navbar-toggler" type="button"
data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse"
id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="index.php">Accueill</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="livres.php">Mes Livres</a>
</li>
</ul>

</div>
</nav>
<div class="container">
<h1 class="rounded border border-dark p-2 m-2 text-center
text-white bg-info"> <?php echo "$titre" ?> </h1>
<?php echo "$content" ?>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV
0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script
src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper
.min.js"
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3
UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstr
ap.min.js"
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uo
d8GCExl3Og8ifwB6" crossorigin="anonymous"></script>

</body>
</html>

Et une aperçue de la page livre est la suivante:

<?php ob_start()?>
Contenu de la page des livres de la bibliotheque
<?php
$content = ob_get_clean();
$titre="Les livres de la bibliotheque";
require "template.php";
?>

1.2.3 Liste des livres :

Objectif:
1. Ajouter des images dans le dossier/public/images
2. Créer un tableau html listant les livres.
Dans le fichier livres.php, nous avons:

<?php ob_start()?>

<table class="table table-striped table-dark">


<thead>
<tr>
<th scope="col">Images</th>
<th scope="col">Titres</th>
<th scope="col">Nombres de pages</th>
<th scope="col">Actions</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row"><img src="public/imagees/algo.jpeg"></th>
<td>Algorithmiques :Cours avec 957 exercices et 158 problemes</td>
<td>300</td>
<td><a type="button" class="btn btn-outline-success">Modifier</a></td>
<td><a type="button" class="btn btn-outline-danger" >Supprimer</a></td>

</tr>
<tr>
<th scope="row"><img src="public/imagees/download.jpeg"></th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
<td>@fat</td>

</tr>
<tr>
<th scope="row"><img src="public/imagees/langC.jpeg"></th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
<td>@twitter</td>

</tr>
</tbody>

</table>
<a type="button" class="btn btn-outline-success d-block">AJOUTER</a>

<?php
$content = ob_get_clean();
$titre="Les livres de la bibliotheque";
require "template.php";
?>

CHAP 2: LA PROGRAMMATION ORIENTÉE


OBJET (POO)

2.0 Introduction:

Dans cette partie nous allons voir les choses d’une autre manière. Nous allons modéliser les
livres sous forme de classes. Cette classe livre aura pour attribut: identifiant, titre, nombre de
pages, et le chemin pour accéder à l’emplacement de l’image. et pour méthode sont : les
getters et les setters. L’objectif est de modéliser les informations de la page livre sous forme
de classes:

2.1 IMPLÉMENTATION:

Alors nous avons la classe Livre

voici les étapes:


Créer un nouveau fichier dans le répertoire du projet du nom de ClasseLivres.php . Dans ce
fichier vous allez créer une classe pour représenter l’ensemble des livres et aussi nous
créerons un constructeur qui servira de créer les instances de livres ainsi que les getters et
setters pour avoir accès aux éléments de la classe.

Écrit la signature de la classe Livres de manière suivante:

ensuite vous mettez en place le constructeur de la classe Livres:

Et ensuite les getters et setters de la classe Livres:


Dans le fichier livres.php contenant la liste des livres, nous allons écrire les livres et nous
allons créer un tableau contenant les livres que nous venons de déclarer. et au final nous
allons utiliser un tableau pour afficher les livres en utilisant une boucle for.

–créer les livres et un tableau nomme listeLivres qui contiendra la liste des livres.

–ensuite nous allons nous servire du tableau et parcourire la liste des livres les afficher selon
le code suivant:

<table class="table table-striped table-dark">


<thead>
<tr>
<th scope="col">Images</th>
<th scope="col">Titres</th>
<th scope="col">Nombres de pages</th>
<th scope="col">Actions</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
</table>
<a type="button" class="btn btn-outline-success d-block">AJOUTER</a>

<!--
<tr>
<th scope="row"><img src="public/imagees/download.jpeg"></th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row"><img src="public/imagees/langC.jpeg"></th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
<td>@twitter</td>

</tr>
-->
<?php
$content = ob_get_clean();
$titre="Les livres de la bibliotheque";
require "template.php";
?>
Visitez alors le rendu du site pour constater les modifications:
● Manipulation des attributs et fonctions statiques.

Nous nous fixons pour objectif de créer une variable statique dans la
classe livre et qui sera disponible d'accès par les les fonctions
tierces créées à l'intérieure de notre classe. Cette variable sera
connue par la classe et non via les objets comme nous l’avons fait
précédemment dans le fichier livres.php.

Editons la classe Livres en ajoutant une variable statique qui contient


la liste des livres de la manière suivante:
en effet la variable $livres contiendra la liste des livres
precedemment cree dans le fichier livres.php.

Ensuite nous aurons quelques modifications à effectuer dans le


fichier livres.php:
–Nous allons enlever la table $listLivres des livres que nous
avons créé
Ensuite allez à l'adresse localhost/……/livres.php vous aurez le même
affichage après avoir actualisé la page.
il reste quelques modifications a faire dans livres.php de la manière
suivante:

Cette partie nous montre un exemple concret de l’utilisation de la


variable static.(Static nous a permis de créer une variable qui
contient la liste des livres de façon dynamique et de l'utiliser dans
le fichier livre.)

EXERCICE 1:

Créer une classe LivreManager qui aura pour but de gérer les livres
sans passer par les attributs static

LivreManager

livres

getLivres()
ajoutLivre(livre)
faites les modifications necessaires pour permetre a LivresManager
d’implementer ces fonctionnalites.

Vous aimerez peut-être aussi