Créer une classe User dans User.php qui contient les attributs suivants :
- id (String)
- email (String)
- createdAt (Date) Ajouter les accesseurs nécessaires et rendez ces attributes privés.
Créer une classe Client dans Client.php, héritant de User avec la méthode publique suivante :
- buy()
Dans users.php, créer deux nouvelles instances de Client (avec tous les attributes initialisés), et renvoyez un tableau php de ces clients.
// users.php
$client1 = new Client(....);
$client2 = new Client(....);
return [
$client1,
$client2
];
Créer un fichier userTable.php qui va récupérer la liste des clients et générer un tableau html affichant l'ensemble de leur informations
$users = require('users.php');
<html
....
<?php for .....
?>
...
</html>
Lancer ensuite votre serveur php et vérifier qu'en vous rendant à cette url /userTable.php
, le tableau s'affiche correctement.
Créer une classe Product ayant les attributs et méthodes suivants :
- id
- name
- price
- et les accesseurs nécessaires
Créer une classe Vegetable héritant de Product et ayant les attributs et méthodes suivants :
- productorName
- harvestedAt
- isFresh()
Implémenter la méthode fresh qui retourne un booléen, vrai si le produit a été récolté il y a moins de 24h, faux sinon.
Créer une classe Cloth héritant de Product et ayant les attributs et méthodes suivants :
- brand
- try()
Créer un fichier products.php qui retourne un tableau contenant deux légumes et trois vêtements.
Créer productTable.php qui renvoie un tableau html avec la liste des produits récemment créés.
Ajouter l'attribut (et ses accesseurs) billAmount
.
Ajouter l'attribut (et ses accesseurs) cart
qui est un tableau de Product.
Ajouter la méthode addProductToCart($product)
qui ajouter un produit au panier du client.
Dans la classe Client.php, implémenter la méthode buy
pour qu'elle prenne en paramètre un objet de classe Product.
A chaque fois qu'un client achète un produit, sa facture augment du prix du produit et ce produit est ajouté au panier.
Créer un fichier testOrder.php où vous effectuerez des tests des scenarii suivants :
- votre premier utilisateur achète un de vos légumes
- votre second utilisateur achète un légume et un vêtement
Afficher toutes les informations nécessaires.
Créer un répertoire models
dans lequel vous placez vos modèles : Product, Vegetable, Cloth, User, Client.
Mettez à jour les fichiers qui sont impactés.
Testez. Tout fonctionne encore ?
Créer un répertoire data
dans lequel vous placez vos données factices : users.php et products.php.
Créer un répertoire views
dans lequel vous placerez vos vues : userTable.php et productTable.php
Tout fonctionne encore ?
Créer un fichier users.php
à la racine de votre projet. Quand l'utilisateur ira sur /users.php, il doit voir le tableau des utilisateurs.
Faites de même en créant products.php
qui a un comportement similaire mais pour les produits.
C'est toujours bon ? On continue
Créer une page shopping.php qui va permettre de créer une commande pour un client.
Afficher un select qui va permettre d'afficher et de sélectionner un client.
Afficher 3 select
successifs qui vont permettre de sélectionner chacun un produit.
Ajouter un bouton d'envoi de commande.
Une fois que la commande a été validée, afficher un récapitulatif de la commande (le cart
du client sélectionné) : liste des produits, prix total ...
Implémenter un module de paiement avec Stripe.