diff --git a/README.md b/README.md
index 8b34ef2..9a34211 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,57 @@
-# Les Recettes des Papis
+# Les recettes des Papis
-modif sur la partie bd jusqu'au 30/03/26 a 15h
+## Installation
+ - Décompressez l'archive du site.
+ - Pointez votre domaine sur le dossier "public".
+ - Modifiez les fichiers de configuration dans "config".
+
+## Informations pratiques sur le PHP.
+
+ - Ce site utilise le principe des routes. Afin de ne pas avoir x fichiers publiques identiques pour chaque page.
+ - Tout est géré par le fichier public/index.php.
+ - index.php va charger le Kernel (Noyau) de l'application.
+ - Le noyau fonctionne sur le principe d'élément unique. La méthode ``Kernel::getInstance()`` va permettre d'avoir l'unique instance de la classe Kernel.
+ - Une fois ``Kernel::getInstance()->init()`` déclenché, le noyau enregistre l'autoloading des fichiers, puis enregistre la configuration.
+ - La configuration sont des fichiers dans le dossier config/ qui vont renvoyer un tableau clé/valeur. Exemple
+
+```php
+ // Fichier config/test.php
+ "Val1",
+ 'cle_2' => "Val2",
+ // ...
+ ] ?>
+```
+
+- Les fichiers de configuration sont chargés via la méthode ``ConfigFactory::loadConfigFile()`` qui va vérifier si le fichier de configuration existe et le charge en conséquence.
+- On enchaine ensuite sur le Router.
+- Le Router est une classe utilitaire qui va permettre de faire le lien entre la route saisie ``/test/...`` de l'utilisateur et les routes enregistrés par le site.
+- Le Router va d'abord commencer par récupérer la route voulue par l'utilisateur.
+- Puis, le router va rechercher tous les Controllers existants.
+- Un Controller est une classe qui va permettre de définir les routes et de dire, qu'est-ce qui se passe quand je prends cette route. Les routes du Controller sont définis par la methode ``Controller::defineRoutes()``
+- Pour définir les routes dans la méthode précédente, vous pouvez soit créer un objet ``Route`` en remplissant tous les champs, ou bien la méthode ``Controller::Route()`` qui va préremplir certains champs.
+- Exemple de Controller
+```php
+ class TestController extends Controller {
+
+ public static function defineRoutes(): array {
+ return [
+ self::Route( routeUrl: '/test', routeName: "Test", routeAction: "test" ),
+ new Route( routeUrl: "/test2", routeName: "Test2", routeController: "TestController", routeAction: "test2", routeMethods = [ 'GET' ] )
+ ];
+ }
+
+ public function test(){
+ echo "Je suis déclenché lorsque j'atteinds la route /test";
+ }
+
+ public function test2(){
+ echo "Je suis déclenché lorsque j'atteinds la route /test2 !!!";
+ }
+ }
+```
+- Retournons au routeur, pour chercher les controllers, il va scanner les fichiers du dossier src/Domain avec un Iterator Récursif. (Pour se simplifier un peu la tâche.)
+- Il va traiter le nom du chemin absolu pour obtenir le nom de la classe, puis va vérifier si cette classe est une sous-classe de Controller.
+- Après avoir trouvé tous les Controllers, il va récupérer toutes les routes de chaque controller.
+- Enfin, il va vérifier si la route utilisateur correspond à une des routes dans sa liste, si ça correspond, le Router va charger la méthode ``new {RouteController}()->{RouteAction}()``
+- Si par exemple, le router trouve la route ``/test`` voulu par l'utilisateur, il va déclencher la méthode ``new TestController()->test()``.
\ No newline at end of file
diff --git a/basededonnee/associations.txt b/basededonnee/associations.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/basededonnee/bdphp/connexionsimple.php b/basededonnee/bdphp/connexionsimple.php
deleted file mode 100644
index 4a8077c..0000000
--- a/basededonnee/bdphp/connexionsimple.php
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
Exécution stoppée <-") ;
-}
-
-// Poursuite de l'exécution du script ?>
-
Connecté à = $dsn ?>
-
-
diff --git a/basededonnee/codemysql/basedonneee.sql b/basededonnee/codemysql/basedonneee.sql
deleted file mode 100644
index 106e50f..0000000
--- a/basededonnee/codemysql/basedonneee.sql
+++ /dev/null
@@ -1,156 +0,0 @@
-
--- MySQL dump 10.13 Distrib 5.5.27, for Win64 (x86)
---
--- Host: localhost Database: cinema
--- ------------------------------------------------------
--- Server version 5.5.27
-
-
-
--- note pour l'execution, 'sur mon ordinateur personnel' dans le terminal
--- sudo mysql --local-infile=1 -p < codemysql/basedonneee.sql (obliger de sudo pour que ca marche sur mon ordi perso)
--- et aussi sudo mysql -p pour juste lancer
--- comment faire tourner mon code sur workbench
--- j'ai modifier les chemins des loads data
--- pour utiliser un chemin relatif* (car chemin relatif ne marche pas dans
--- workbench, mais fonctionne dans les fichiers de script. (il doit y avoir une option pour sur WB)
-
-
-
-DROP DATABASE IF EXISTS siterecette;
-CREATE DATABASE siterecette;
-
-DROP USER IF EXISTS 'admin'@'localhost';
-CREATE USER 'admin'@'localhost' IDENTIFIED BY 'adminpass123';
-GRANT ALL PRIVILEGES ON siterecette.* TO 'admin'@'localhost';
-USE siterecette;
-
---
--- Table structure for table acteur
---
-
-DROP TABLE IF EXISTS Recette;
-CREATE TABLE Recette (
- num_recette INT NOT NULL,
- titre_recette VARCHAR(60) NOT NULL,
- slug VARCHAR(200) NOT NULL,
- description_recette VARCHAR(1000) NOT NULL,
- photo VARCHAR(200) NOT NULL,
- publication_date DATE NOT NULL,
- temps_de_preparation INT NOT NULL
-
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-
-
---
--- Table structure for table realisateur
---
-
-DROP TABLE IF EXISTS Tag;
-CREATE TABLE Tag (
- num_tag INT NOT NULL,
- nom_tag VARCHAR(30) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-
---
--- Table structure for table salle
---
-
-DROP TABLE IF EXISTS Ingredient;
-CREATE TABLE Ingredient (
- num_ingredient INT NOT NULL,
- nom_ingredient INT NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-
---
--- Table structure for table film
---
-
-DROP TABLE IF EXISTS Listeingredient;
-CREATE TABLE Listeingredient (
- num_recette INT NOT NULL,
- num_ingredient INT NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-
-
---
--- Table structure for table projection
---
-
-DROP TABLE IF EXISTS Referencetag;
-CREATE TABLE Referencetag (
- num_recette INT NOT NULL,
- num_tag INT NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-DROP TABLE IF EXISTS User;
-CREATE TABLE User (
- num_user INT NOT NULL,
- username VARCHAR(20) NOT NULL,
- userpassword VARCHAR(60) NOT NULL
-
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-
-
---
--- CONTRAINTES
---
--- en utilisant les 'alter table' sinon on peut directement les specifier dans les create table
-ALTER TABLE Recette
- ADD CONSTRAINT pk_recette PRIMARY KEY (num_recette);
-ALTER TABLE Ingredient
- ADD CONSTRAINT pk_ingredient PRIMARY KEY (num_ingredient);
-ALTER TABLE Tag
- ADD CONSTRAINT pk_tag PRIMARY KEY (num_tag);
-
-ALTER TABLE User
- ADD CONSTRAINT pk_user PRIMARY KEY (num_user);
-
-
-ALTER TABLE Listeingredient
- ADD CONSTRAINT fk_numrecette_ingredient FOREIGN KEY (num_recette) REFERENCES Recette (num_recette),
- ADD CONSTRAINT fk_recette_numingredient FOREIGN KEY (num_ingredient) REFERENCES Ingredient (num_ingredient);
-
-ALTER TABLE Referencetag
- ADD CONSTRAINT fk_numrecette_tag FOREIGN KEY (num_recette) REFERENCES Recette (num_recette),
- ADD CONSTRAINT fk_recette_numtag FOREIGN KEY (num_tag) REFERENCES Tag (num_tag);
-
--- si besoin exemple de chargement csv
-
--- LOAD DATA LOCAL INFILE 'nom.csv'
--- INTO TABLE nom
--- FIELDS TERMINATED BY ','
--- ENCLOSED BY '"'
--- LINES TERMINATED BY '\n'
--- IGNORE 1 ROWS;
- -- les chemin ./filename.csv ne marche que dans le terminal avec le cli mysql via la commande $
-
-
-
--- select * from column;
-
-INSERT INTO Recette (num_recette,titre_recette,slug,description_recette,photo,publication_date,temps_de_preparation)
-values(1,"nomdrecette","slugdpage","descriptiondrecette","urldephoto",'2023-12-31',500),
-(2,"nomdrecette","slugdpage","descriptiondrecette","urldephoto",'2023-12-31',500),
-(3,"nomdrecette","slugdpage","descriptiondrecette","urldephoto",'2023-12-31',500);
-
-
--- select * from Recette;
-
--- INSERT INTO Tag (num_tag,nom_tag)
--- values(1,"nomdtag");
-
-
--- INSERT INTO Referencetag(num_recette, num_tag)
--- values(1,1);
-
--- INSERT INTO Ingredient(num_ingredient,nom_ingredient)
--- values(2,2);
-
--- INSERT INTO Listeingredient(num_recette,num_ingredient)
--- values(1,2);
diff --git a/basededonnee/contraintelisteingredientprobleme.txt b/basededonnee/contraintelisteingredientprobleme.txt
deleted file mode 100644
index 7b535b4..0000000
--- a/basededonnee/contraintelisteingredientprobleme.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-quand on créer une recette
-(le but c'est que quand on en créer une
-on est en même temps au moins une instance d'association
-qui enregistre cette recette et ses ingrédients simultanément
-de manière obligatoire)
-
-idée 1 : on ignore l'obligation d'associer une liste d'ingredients a une recette à sa création.
-
-idée 2 : les ingredients d'une liste d'ingredients qui est associés a une recette sont représenter comme une suite de caractère en une ligne séparer par des espace ce qui ferait un seul élément respectant la normalisation 2NF
-
-idée 3 : ajouter des règles de contraintes à la créations d'une recette par exemple quand on créer une recette il faut que ...
-soit dans la base de données soit juste dans le backend
-
-idée ... :
\ No newline at end of file
diff --git a/basededonnee/entité.txt b/basededonnee/entité.txt
deleted file mode 100644
index 8210c99..0000000
--- a/basededonnee/entité.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-recettes ID
- Titre
- Slug
- Description
- Photo
- Date d'ajout
-
-
-liste-recettes (entités)
--Id listerecettes
-
-
-Recette-Ingrédients
-
- ID_Recette
- ID_Ingrédient
-
-Recette-Tags
-
- ID_Recette
- ID_Tag
-
-Ingrédients
-
- ID
- Nom
- Image
-
-Tag
-
- ID
- Nom
-
-Utilisateurs
-
- ID
- Username
- MDP (Hashé, bien entendu...)
-
-
-. Permission (utilisateurs)
diff --git a/basededonnee/test.drawio b/basededonnee/test.drawio
deleted file mode 100644
index ec4b522..0000000
--- a/basededonnee/test.drawio
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/config/database.php b/config/database.php
new file mode 100644
index 0000000..b168339
--- /dev/null
+++ b/config/database.php
@@ -0,0 +1,9 @@
+ 'localhost',
+ 'port' => 3306,
+ 'user' => 'admin',
+ 'pass' => 'adminpass123',
+ 'name' => 'siterecette'
+];
diff --git a/projetphp/config/general.php b/config/general.php
similarity index 100%
rename from projetphp/config/general.php
rename to config/general.php
diff --git a/projetphp/config/route_arguments.php b/config/route_arguments.php
similarity index 100%
rename from projetphp/config/route_arguments.php
rename to config/route_arguments.php
diff --git a/projetphp/config/views.php b/config/views.php
similarity index 100%
rename from projetphp/config/views.php
rename to config/views.php
diff --git a/projetphp/README.md b/projetphp/README.md
deleted file mode 100644
index 9a34211..0000000
--- a/projetphp/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Les recettes des Papis
-
-## Installation
- - Décompressez l'archive du site.
- - Pointez votre domaine sur le dossier "public".
- - Modifiez les fichiers de configuration dans "config".
-
-## Informations pratiques sur le PHP.
-
- - Ce site utilise le principe des routes. Afin de ne pas avoir x fichiers publiques identiques pour chaque page.
- - Tout est géré par le fichier public/index.php.
- - index.php va charger le Kernel (Noyau) de l'application.
- - Le noyau fonctionne sur le principe d'élément unique. La méthode ``Kernel::getInstance()`` va permettre d'avoir l'unique instance de la classe Kernel.
- - Une fois ``Kernel::getInstance()->init()`` déclenché, le noyau enregistre l'autoloading des fichiers, puis enregistre la configuration.
- - La configuration sont des fichiers dans le dossier config/ qui vont renvoyer un tableau clé/valeur. Exemple
-
-```php
- // Fichier config/test.php
- "Val1",
- 'cle_2' => "Val2",
- // ...
- ] ?>
-```
-
-- Les fichiers de configuration sont chargés via la méthode ``ConfigFactory::loadConfigFile()`` qui va vérifier si le fichier de configuration existe et le charge en conséquence.
-- On enchaine ensuite sur le Router.
-- Le Router est une classe utilitaire qui va permettre de faire le lien entre la route saisie ``/test/...`` de l'utilisateur et les routes enregistrés par le site.
-- Le Router va d'abord commencer par récupérer la route voulue par l'utilisateur.
-- Puis, le router va rechercher tous les Controllers existants.
-- Un Controller est une classe qui va permettre de définir les routes et de dire, qu'est-ce qui se passe quand je prends cette route. Les routes du Controller sont définis par la methode ``Controller::defineRoutes()``
-- Pour définir les routes dans la méthode précédente, vous pouvez soit créer un objet ``Route`` en remplissant tous les champs, ou bien la méthode ``Controller::Route()`` qui va préremplir certains champs.
-- Exemple de Controller
-```php
- class TestController extends Controller {
-
- public static function defineRoutes(): array {
- return [
- self::Route( routeUrl: '/test', routeName: "Test", routeAction: "test" ),
- new Route( routeUrl: "/test2", routeName: "Test2", routeController: "TestController", routeAction: "test2", routeMethods = [ 'GET' ] )
- ];
- }
-
- public function test(){
- echo "Je suis déclenché lorsque j'atteinds la route /test";
- }
-
- public function test2(){
- echo "Je suis déclenché lorsque j'atteinds la route /test2 !!!";
- }
- }
-```
-- Retournons au routeur, pour chercher les controllers, il va scanner les fichiers du dossier src/Domain avec un Iterator Récursif. (Pour se simplifier un peu la tâche.)
-- Il va traiter le nom du chemin absolu pour obtenir le nom de la classe, puis va vérifier si cette classe est une sous-classe de Controller.
-- Après avoir trouvé tous les Controllers, il va récupérer toutes les routes de chaque controller.
-- Enfin, il va vérifier si la route utilisateur correspond à une des routes dans sa liste, si ça correspond, le Router va charger la méthode ``new {RouteController}()->{RouteAction}()``
-- Si par exemple, le router trouve la route ``/test`` voulu par l'utilisateur, il va déclencher la méthode ``new TestController()->test()``.
\ No newline at end of file
diff --git a/projetphp/config/BDD.php b/projetphp/config/BDD.php
deleted file mode 100644
index 6f1ab5d..0000000
--- a/projetphp/config/BDD.php
+++ /dev/null
@@ -1,53 +0,0 @@
-
- Code : = $ex->getCode() ?> Message : = $ex->getMessage() ?>
-
-
-
-
diff --git a/projetphp/public/assets/css/style.css b/projetphp/public/assets/css/style.css
deleted file mode 100644
index 9e6b0eb..0000000
--- a/projetphp/public/assets/css/style.css
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Sommaire :
-- body et html
-- Header et ses contenues
-- Body contenue
- - Content
- - Page de présentation des recettes
- - Page d'une recette
-- Footer
-
-*/
-
-/*Tout*/
-html, body{
- height: 100%;
- text-align: center;
- /*font-size: 98%;*/
-}
-
-
-/*Header et son contenu*/
-#header {
- display: flex;
- flex-direction: row;
- padding: 3px;
- padding-left: 2%;
- padding-bottom: 10px;
- background-color: blanchedalmond;
-}
-
-#logo {
- background-color: aqua;
- background-image: url("Logo.jpg");
- /*background:no-repeat;*/
- height: 103px;
- width: 141px;
-}
-
-.logo{
- height: 100%;
- width: 100%;
- border: 1px white solid;
- border-radius: 4px;
- box-shadow: 1px 1px 1px black;
-}
-
-nav {
- flex: 9;
- text-align: initial;
- letter-spacing: 2px;
- padding: 10px;
-}
-
-.nav-list {
- list-style-type: none;
- margin: 0;
- padding: 0;
- background-color: rgb(255, 217, 160);
- display: flex;
- border: 1px solid rgba(0,0,0,.125);
- border-radius: 40px;
-}
-
-
-.nav-element {
- line-height: 2.5;
- padding: 10px;
-}
-
-/*Body et son contenu */
-body {
- background-color: blanchedalmond;
- display: flex;
- flex-direction: column;
- margin: 0;
- padding: 0;
- height: 100%;
-}
-
-.sidebar {
- background-color: aquamarine;
- border: 1px solid rgba(0,0,0,.125);
- border-radius: 10px;
- width: 128px;
-}
-
-
-.main-body {
- display: flex;
- flex-direction: row;
- overflow: auto;
- flex: 1;
- background-clip: border-box;
- padding-right: 5%;
- padding-left: 5%;
-}
-
-/* content : le cadre de base du centre de notre site
-*/
-.content {
- background-color: #ffe4bb;
- text-align: left;
- width: 100%;
- height: 100%;
- border: 1px solid rgba(0,0,0,.125);
- border-radius: 6px;
- overflow: auto;
-}
-
-/*Recettes :
- représente le contenue centrale de la page.
-*/
-.recettes {
- --UneVariable: calc( 100vw / 500 );
- display: grid;
- grid-template-columns: repeat(var(--UneVariable), 1fr);
- grid-gap: 10px;
- grid-auto-rows: minmax(300px, auto);
- grid-auto-columns: auto;
-}
-
-/* Classe recette icone :
- C'est la classe de chaques éléments de notre liste de recette
-*/
-.recette-icone{
- border: 3px solid rgba(0,0,0,.125);
- border-radius: 40px;
- text-align: left;
- padding: 15px;
- vertical-align: middle;
- box-shadow: 3px 5px 5px black;
- width: 500px;
-}
-
-.recette-preview-image{
- max-width: calc( 10vh + 10vw );
- max-height: calc( 10vh + 10vw );
- border: 1px solid rgb(252, 223, 57);
- border-radius: 25px;
-}
-
-/*Ici commence le CSS pour la page de chaques recettes */
-/*contenue*/
-.recette-content {
- display: flex;
- flex-direction: column;
-}
-
-/*titre*/
-.recette-title {
- text-align: center;
-}
-
-/*image*/
-.recette-image {
- background-color: red;
- aspect-ratio: 1/1;
- max-height: calc( 30vh + 30vw );
- max-width: calc( 30vh + 30vw );
- border: 1px solid white;
- border-radius: 30px;
-}
-
-.recette-div-image {
- display: flex;
- justify-content: center;
-}
-
-/*description*/
-.recette-desc {
- padding : 10px;
-}
-
-
-/*Footer et son contenue*/
-footer{
- padding: 25px;
- background: rgb(11, 189, 144);
- color: white;
-}
-
-
-
diff --git a/projetphp/public/index.php b/projetphp/public/index.php
deleted file mode 100644
index 79a13f7..0000000
--- a/projetphp/public/index.php
+++ /dev/null
@@ -1,28 +0,0 @@
-getpdo(),$bd->getname());
-
-//public static function add(int $num_recette, string $titre_recette, string $slug, string $description_recette, string $photo, string $publication_date, int $temps_de_preparation ): Bool{
-
-$test::add(5,"a",'a','a','a','2028-12-31',1);
-$recetest = $test::getAll();
-echo $recetest->slug;
diff --git a/projetphp/src/Domain/Model.php b/projetphp/src/Domain/Model.php
deleted file mode 100644
index 940c23b..0000000
--- a/projetphp/src/Domain/Model.php
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/projetphp/src/Domain/Recettes/Recettes.php b/projetphp/src/Domain/Recettes/Recettes.php
deleted file mode 100644
index 5912cb5..0000000
--- a/projetphp/src/Domain/Recettes/Recettes.php
+++ /dev/null
@@ -1,33 +0,0 @@
-
-column="Recette";
- $this->num_recette=$num_recette;
- $this->titre_recette=$titre_recette;
- $this->slug=$slug;
- $this->description_recette=$description_recette;
- $this->photo=$photo;
- $this->publication_date=$publication_date;
- $this->temps_de_preparation=$temps_de_preparation;
-
- }
-
-}
-
-
-
-?>
\ No newline at end of file
diff --git a/projetphp/src/Domain/Recettes/RecettesRepository.php b/projetphp/src/Domain/Recettes/RecettesRepository.php
deleted file mode 100644
index 75b21b7..0000000
--- a/projetphp/src/Domain/Recettes/RecettesRepository.php
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
diff --git a/projetphp/src/Domain/Repository.php b/projetphp/src/Domain/Repository.php
deleted file mode 100644
index 1d96973..0000000
--- a/projetphp/src/Domain/Repository.php
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-prepare($sql) ;
-$statement->execute() or die(var_dump($statement->errorInfo())) ;
-$results = $statement->fetchAll(PDO::FETCH_OBJ) ;
-//print_r($results);
-if(empty($results))return null;
-return (array)$results;
-}
-
-
-public static function selectgetByID($id,$tablename,$idname): ?Recettes{
-$sql = "SELECT * FROM " . $tablename . " WHERE " . $idname ." = " . $id;
-print_r($sql);
-$pdo=BDD::getPDO();
-$statement = $pdo->prepare($sql) ;
-$statement->execute() or die(var_dump($statement->errorInfo())) ;
-$results = $statement->fetchAll(PDO::FETCH_OBJ);
-$valuearray = (array)$results[0];
-//print_r($valuearray);
-//$results = un array de 1 dimension de taille 1 elt avec chaque attribut $result[0]->attribut echo print_r($results[0]->titre_recette);
-if(empty($valuearray))return null;
-return new Recettes(...$valuearray); // '...' unpack l'array et comme les clés correspondent a celles du constructeurs ça marche.
-
-
-}
-
-
-public static function insertaddall(array $attributesattributes,string $tablename,string $attributesname, string $idname): bool{
-
-$pdo = BDD::getPDO();
-
-$sql = "INSERT INTO " . $tablename . " " . $attributesname;
-
-//je vais utiliser bind value car en fonction de quel entitee arrive on a des str ou des int c'est plus dur de generaliser si nécessaire de gerer des ,'str',int,int,'str', etc.
-if(empty($attributesattributes))return false;
-
-$attribtag="val"; $interativ=0;
-$attribbind=" VALUES (";
-foreach($attributesattributes[0] as $a){
-$interativ++;
-$attribtagn=$attribtag . $interativ;
-if($interativ>1){$attribbind = $attribbind . ", ";}
-$attribbind = $attribbind . ":" . $attribtagn;
-}
-$attribbind = $attribbind . ")";
-$query = $sql . $attribbind;
-$statement = $pdo->prepare($query);
-// Liaison des paramètres à des valeurs
-$interativ=0;
-foreach($attributesattributes as $attributes)
-foreach($attributes as $attribute){
-$interativ++;
-$attribtagn=$attribtag . $interativ;
-$statement->bindValue($attribtagn, $attribute);
-}
-$statement->execute() or die(var_dump($statement->errorInfo())) ;
-
- return true;
-}
-
-
-public static function insertadd(array $attributes,$tablename,$attributesname, $idname, $isentity): bool{
-// vérification id n'existe pas déjà :
-if($isentity){
-$isitalreadyusedid = self::selectgetById($attributes[0],$tablename,$idname); //le dernier param = id, accessible ainsi car simple array des attributs d'une seule entitee,
-// à modifier pour insertall si on fait la verif dedans mais distinguer les array attributs d'entitee et d'association, la verif des associations doit être autre (si idtable1 combinee a idtable2 existe deja dans un même enregistrement)
-if(!empty($isitalreadyusedid)) return false;}
-//je vais utiliser bind value car en fonction de quel entitee arrive on a des str ou des int c'est plus dur de generaliser si nécessaire de gerer des ,'str',int,int,'str', etc.
-//le mieux serait de mettre tout le code de insertadd dans une fonction insertadds qui gère une multiinsertion, insertadd appelle insertadds pour un seul elt.
-(array)$attributesattributes=[$attributes];
-return self::insertaddall($attributesattributes,$tablename,$attributesname,$idname);
-}
-
-}
-
-
-
-
-?>
diff --git a/projetphp/views/home.php b/projetphp/views/home.php
deleted file mode 100644
index 3cb93ff..0000000
--- a/projetphp/views/home.php
+++ /dev/null
@@ -1,2 +0,0 @@
-
Coucou
-
\ No newline at end of file
diff --git a/projetphp/views/partials/header.php b/projetphp/views/partials/header.php
deleted file mode 100644
index 792aadb..0000000
--- a/projetphp/views/partials/header.php
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- x
-
\ No newline at end of file
diff --git a/views/recettes/index.php b/views/recettes/index.php
new file mode 100644
index 0000000..974caff
--- /dev/null
+++ b/views/recettes/index.php
@@ -0,0 +1,19 @@
+
+
+
+