Bank Account
La programmation orientée objet en PHP
Exercice PHP orienté objet :
Réaliser l'application d'un compte en banque
Sujet : Des utilisateurs de compte bancaires ont la possibilité d'effectuer des dépôt et des retraits et d'afficher leurs soldes. Les banquiers peuvent créer des comptes, les afficher, les supprimer et octroyer des prêts.
Le front n'est pas demandé. L'objectif est de réaliser les classes, propriétés et méthodes nécessaires à la gestion de base d'un compte courant.
Nous avons besoin de trois classes :- Une classe mère Utilisateur
- Une classe fille Titulaire
- Une classe fille Banquier
Le fichier classes/utilisateur.class.php
Notre classe Utilisateur ne définie que les choses communes à tous les utilisateurs et nous allons définir les spécificités de chaque type d'utilisateur dans des classes étendues Titulaire et Banquier.
<?php
abstract class Utilisateur {
protected $user_titre;
protected $user_name;
protected $user_pass;
protected $user_balance;
protected $user_num_compte;
public function getTitre(){
return $this -> user_titre;
}
public function getNom(){
echo $this -> user_name;
}
public function getNumCompte(){
echo $this -> user_num_compte;
}
// Afficher le solde (soit la valeur de user_balance)
public function getBalance(){
echo '<p>Solde du compte n° '.$this->user_num_compte.' : ';
echo $this -> user_balance.' €</p>';
}
}
Le fichier classes/titulaire.class.php
<?php
class Titulaire extends Utilisateur {
public function __construct($n, $nc) {
$this->user_name = strtoupper($n);
$this->user_num_compte = $nc;
}
// Gestion des deposit (dépôts)
public function depot($somme) {
echo 'Dépôt de '.$somme.' € ';
echo 'sur le compte n° '.$this->user_num_compte;
$this -> user_balance += $somme ;
return $this -> getBalance();
}
// Gestion des withdrawal (retrait)
public function retrait($somme) {
echo 'Retrait de '.$somme.' € ';
echo 'sur le compte n° '.$this->user_num_compte;
$this -> user_balance -= $somme ;
return $this -> getBalance();
}
}
Le fichier classes/banquier.class.php
A noter qu'avec une base de donnée, la classe banquier deviendra probablement une classe manager (le CRUD)
<?php
class Banquier extends Utilisateur {
public function __construct($n) {
$this->user_name = strtoupper($n);
}
public function creation_compte($num, $titre, $nom) {
echo '<p>Création du compte n° '.$num.' pour '.$titre.' '.$nom.'</p>';
}
public function suppression_compte($num) {
$this -> getNumCompte($num); // a finir
}
public function pret($nump, $montant, $num) {
echo '<p>Création d\'un prêt bancaire n° '.$nump.' de '.$montant.' €';
echo 'pour le compte n°'.$num.'</p>';
// rajouter le dépôt
}
}
Le fichier index.php
<?php
require 'classes/utilisateur.class.php';
require 'classes/titulaire.class.php';
require 'classes/banquier.class.php';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=, initial-scale=1.0">
<title>Application Bank Account</title>
</head>
<body>
<?php
$Banquier1 = new banquier('Robert');
$Banquier1 -> creation_compte(555, 'Monsieur', 'Fernand');
$Banquier1 -> creation_compte(666, 'Madame','Marie Chantal');
$Titulaire1 = new titulaire('Fernand', 555);
$Titulaire1 -> depot(20).'<br>';
$Titulaire1 -> depot(120).'<br>';
$Titulaire1 -> retrait(20).'<br>';
$Titulaire2 = new titulaire('Marie Chantal', 666);
$Titulaire2 -> depot(2000).'<br>';
$Titulaire1 -> depot(200).'<br>';
?>
</body>
</html>