From 50f0161a1dc845bf0dda4d4b7e7eb8bb4ca7fa1f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?SERRIER=20Math=C3=A9o?=
 <matheo.serrier4@etu.univ-lorraine.fr>
Date: Mon, 4 Mar 2024 17:53:03 +0100
Subject: [PATCH] refactoring

---
 .env                                          |   4 ++
 composer.json                                 |   2 +-
 config/.empty                                 |   0
 db/connection.php                             |   2 +-
 docker-compose.yml                            |  42 ++++++++++++++++++
 notes.md                                      |  12 +++++
 .htaccess => public/.htaccess                 |   0
 .../font}/SourceSansPro-Regular.ttf           | Bin
 .../EOS_5D_Mark_III_Default_tcm79-932815.jpg  | Bin
 {img => public/img}/bin.png                   | Bin
 {img => public/img}/canon5d.png               | Bin
 {img => public/img}/canoneos5dmark.png        | Bin
 {img => public/img}/edit.png                  | Bin
 {img => public/img}/email.png                 | Bin
 {img => public/img}/email.svg                 |   0
 {img => public/img}/email2.png                | Bin
 {img => public/img}/menu.svg                  |   0
 {img => public/img}/moon.jpg                  | Bin
 {img => public/img}/noimg.png                 | Bin
 {img => public/img}/ratcoin.png               | Bin
 {img => public/img}/ratcoin2.png              | Bin
 {img => public/img}/search.png                | Bin
 {img => public/img}/stamps.jpg                | Bin
 {img => public/img}/voilier.jpg               | Bin
 {img => public/img}/watch.jpg                 | Bin
 {img => public/img}/watch.png                 | Bin
 index.php => public/index.php                 |  10 ++---
 {js => public/js}/annonce.js                  |   0
 {js => public/js}/classie.js                  |   0
 {js => public/js}/del.js                      |   0
 {js => public/js}/jquery-1.11.1.min.js        |   0
 {scss => public/scss}/_breadcrumb.scss        |   0
 {scss => public/scss}/_component.scss         |   0
 {scss => public/scss}/_global.scss            |   0
 {scss => public/scss}/_grid.scss              |   0
 {scss => public/scss}/_hgtable.scss           |   0
 {scss => public/scss}/_mixins.scss            |   0
 {scss => public/scss}/_pagination.scss        |   0
 {scss => public/scss}/_reset.scss             |   0
 {scss => public/scss}/_typo.scss              |   0
 {scss => public/scss}/_variables.scss         |   0
 {scss => public/scss}/master.scss             |   0
 .../stylesheets}/master.css                   |   0
 .../stylesheets}/master.css.map               |   0
 template/item.html.twig                       |   8 ++--
 template/main.html.twig                       |   2 +-
 template/main_min.html.twig                   |   2 +-
 47 files changed, 71 insertions(+), 13 deletions(-)
 create mode 100644 .env
 delete mode 100644 config/.empty
 create mode 100644 docker-compose.yml
 create mode 100644 notes.md
 rename .htaccess => public/.htaccess (100%)
 rename {font => public/font}/SourceSansPro-Regular.ttf (100%)
 mode change 100755 => 100644
 rename {img => public/img}/EOS_5D_Mark_III_Default_tcm79-932815.jpg (100%)
 rename {img => public/img}/bin.png (100%)
 rename {img => public/img}/canon5d.png (100%)
 rename {img => public/img}/canoneos5dmark.png (100%)
 rename {img => public/img}/edit.png (100%)
 rename {img => public/img}/email.png (100%)
 rename {img => public/img}/email.svg (100%)
 rename {img => public/img}/email2.png (100%)
 rename {img => public/img}/menu.svg (100%)
 rename {img => public/img}/moon.jpg (100%)
 rename {img => public/img}/noimg.png (100%)
 rename {img => public/img}/ratcoin.png (100%)
 rename {img => public/img}/ratcoin2.png (100%)
 rename {img => public/img}/search.png (100%)
 rename {img => public/img}/stamps.jpg (100%)
 rename {img => public/img}/voilier.jpg (100%)
 rename {img => public/img}/watch.jpg (100%)
 rename {img => public/img}/watch.png (100%)
 rename index.php => public/index.php (96%)
 rename {js => public/js}/annonce.js (100%)
 rename {js => public/js}/classie.js (100%)
 rename {js => public/js}/del.js (100%)
 rename {js => public/js}/jquery-1.11.1.min.js (100%)
 rename {scss => public/scss}/_breadcrumb.scss (100%)
 rename {scss => public/scss}/_component.scss (100%)
 mode change 100755 => 100644
 rename {scss => public/scss}/_global.scss (100%)
 rename {scss => public/scss}/_grid.scss (100%)
 rename {scss => public/scss}/_hgtable.scss (100%)
 rename {scss => public/scss}/_mixins.scss (100%)
 rename {scss => public/scss}/_pagination.scss (100%)
 rename {scss => public/scss}/_reset.scss (100%)
 rename {scss => public/scss}/_typo.scss (100%)
 rename {scss => public/scss}/_variables.scss (100%)
 rename {scss => public/scss}/master.scss (100%)
 rename {stylesheets => public/stylesheets}/master.css (100%)
 rename {stylesheets => public/stylesheets}/master.css.map (100%)

diff --git a/.env b/.env
new file mode 100644
index 0000000..d958fc6
--- /dev/null
+++ b/.env
@@ -0,0 +1,4 @@
+MYSQL_ROOT_PASSWORD=r00tracoin
+MYSQL_USER=racoin
+MYSQL_PASSWORD=racoin
+MYSQL_DATABASE=racoin
diff --git a/composer.json b/composer.json
index 9654d2f..87174f0 100644
--- a/composer.json
+++ b/composer.json
@@ -1,6 +1,6 @@
 {
     "require": {
-        "slim/slim": "2.*",
+        "slim/slim": "3.*",
         "twig/twig": "~1.0",
         "illuminate/database": "4.2.9"
     },
diff --git a/config/.empty b/config/.empty
deleted file mode 100644
index e69de29..0000000
diff --git a/db/connection.php b/db/connection.php
index 331d606..4fc0063 100644
--- a/db/connection.php
+++ b/db/connection.php
@@ -10,7 +10,7 @@ class connection {
 
     public static function createConn() {
         $capsule = new DB;
-        $capsule->addConnection(parse_ini_file("./config/config.ini"));
+        $capsule->addConnection(parse_ini_file("../config/config.ini"));
         $capsule->setAsGlobal();
         $capsule->bootEloquent();
     }
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..6e5189c
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,42 @@
+version: '3'
+networks:
+  racoin.net:
+    driver: bridge
+services:
+
+  #
+  # service administration des bases sql
+  #
+  adminer:
+    image: adminer
+    command: php -S 0.0.0.0:8080 -t /var/www/html
+    ports:
+      - '8081:8080' ## 40510
+    networks:
+      - racoin.net
+
+  db:
+    image: 'mariadb:latest'
+    command: '--default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_general_ci'
+    env_file: .env
+    ports:
+      - '3309:3306' ## 40508
+    networks:
+      - racoin.net
+    volumes:
+      - ./db/sql:/var/sql
+
+  php:
+    image: 'canals/php:7.4'
+    restart: always
+    env_file: .env
+    ports:
+      - '80:80'
+    volumes:
+      - ./public:/var/www/html
+      - ./:/var/www
+    working_dir: /var/www/
+    networks:
+      - racoin.net
+    depends_on:
+      - db
\ No newline at end of file
diff --git a/notes.md b/notes.md
new file mode 100644
index 0000000..f2d8e94
--- /dev/null
+++ b/notes.md
@@ -0,0 +1,12 @@
+## Langage : php, js, css, html
+## framework : symfony, slim + twig
+## But générale : application de petites annonces et de ventes en ligne (leboncoin)
+## Faire fonctionner l'application :
+### - installer les dépendances via composer
+### - créer et remplir le fichier ./config/config.ini pour lier l'appliction à la bd
+
+## Mode d'emploi : 
+
+## Dépendances non maintenu : 
+### - Carbon 1 à migrer vers Carbon 2
+### - upgrade slim
\ No newline at end of file
diff --git a/.htaccess b/public/.htaccess
similarity index 100%
rename from .htaccess
rename to public/.htaccess
diff --git a/font/SourceSansPro-Regular.ttf b/public/font/SourceSansPro-Regular.ttf
old mode 100755
new mode 100644
similarity index 100%
rename from font/SourceSansPro-Regular.ttf
rename to public/font/SourceSansPro-Regular.ttf
diff --git a/img/EOS_5D_Mark_III_Default_tcm79-932815.jpg b/public/img/EOS_5D_Mark_III_Default_tcm79-932815.jpg
similarity index 100%
rename from img/EOS_5D_Mark_III_Default_tcm79-932815.jpg
rename to public/img/EOS_5D_Mark_III_Default_tcm79-932815.jpg
diff --git a/img/bin.png b/public/img/bin.png
similarity index 100%
rename from img/bin.png
rename to public/img/bin.png
diff --git a/img/canon5d.png b/public/img/canon5d.png
similarity index 100%
rename from img/canon5d.png
rename to public/img/canon5d.png
diff --git a/img/canoneos5dmark.png b/public/img/canoneos5dmark.png
similarity index 100%
rename from img/canoneos5dmark.png
rename to public/img/canoneos5dmark.png
diff --git a/img/edit.png b/public/img/edit.png
similarity index 100%
rename from img/edit.png
rename to public/img/edit.png
diff --git a/img/email.png b/public/img/email.png
similarity index 100%
rename from img/email.png
rename to public/img/email.png
diff --git a/img/email.svg b/public/img/email.svg
similarity index 100%
rename from img/email.svg
rename to public/img/email.svg
diff --git a/img/email2.png b/public/img/email2.png
similarity index 100%
rename from img/email2.png
rename to public/img/email2.png
diff --git a/img/menu.svg b/public/img/menu.svg
similarity index 100%
rename from img/menu.svg
rename to public/img/menu.svg
diff --git a/img/moon.jpg b/public/img/moon.jpg
similarity index 100%
rename from img/moon.jpg
rename to public/img/moon.jpg
diff --git a/img/noimg.png b/public/img/noimg.png
similarity index 100%
rename from img/noimg.png
rename to public/img/noimg.png
diff --git a/img/ratcoin.png b/public/img/ratcoin.png
similarity index 100%
rename from img/ratcoin.png
rename to public/img/ratcoin.png
diff --git a/img/ratcoin2.png b/public/img/ratcoin2.png
similarity index 100%
rename from img/ratcoin2.png
rename to public/img/ratcoin2.png
diff --git a/img/search.png b/public/img/search.png
similarity index 100%
rename from img/search.png
rename to public/img/search.png
diff --git a/img/stamps.jpg b/public/img/stamps.jpg
similarity index 100%
rename from img/stamps.jpg
rename to public/img/stamps.jpg
diff --git a/img/voilier.jpg b/public/img/voilier.jpg
similarity index 100%
rename from img/voilier.jpg
rename to public/img/voilier.jpg
diff --git a/img/watch.jpg b/public/img/watch.jpg
similarity index 100%
rename from img/watch.jpg
rename to public/img/watch.jpg
diff --git a/img/watch.png b/public/img/watch.png
similarity index 100%
rename from img/watch.png
rename to public/img/watch.png
diff --git a/index.php b/public/index.php
similarity index 96%
rename from index.php
rename to public/index.php
index 9913d6c..4c98733 100644
--- a/index.php
+++ b/public/index.php
@@ -1,5 +1,5 @@
 <?php
-require 'vendor/autoload.php';
+require '../vendor/autoload.php';
 use db\connection;
 
 use Slim\Extras\Middleware\CsrfGuard;
@@ -14,7 +14,7 @@ use model\Departement;
 connection::createConn();
 
 
-$app = new \Slim\Slim(array(
+$app = new \Slim\App(array(
     'mode' => 'development'
 ));
 
@@ -33,7 +33,7 @@ if (!isset($_SESSION['token'])) {
 
 //$app->add(new CsrfGuard());
 
-$loader = new Twig_Loader_Filesystem('template');
+$loader = new Twig_Loader_Filesystem('../template');
 $twig = new Twig_Environment($loader);
 
 $menu = array(
@@ -82,11 +82,11 @@ $app->post('/item/:id/edit', function ($id) use ($twig, $app, $menu, $chemin, $c
     $item->modifyPost($twig,$menu,$chemin, $id, $allPostVars, $cat->getCategories(), $dpt->getAllDepartments());
 });
 
-$app->map('/item/:id/confirm', function ($id) use ($twig, $app, $menu, $chemin) {
+$app->map(['GET', 'POST'],'/item/:id/confirm', function ($id) use ($twig, $app, $menu, $chemin) {
     $allPostVars = $app->request->post();
     $item = new \controller\item();
     $item->edit($twig,$menu,$chemin, $id, $allPostVars);
-})->name('confirm')->via('GET', 'POST');
+})->setName('confirm');
 
 $app->get('/search/', function () use ($twig, $menu, $chemin, $cat) {
     $s = new controller\Search();
diff --git a/js/annonce.js b/public/js/annonce.js
similarity index 100%
rename from js/annonce.js
rename to public/js/annonce.js
diff --git a/js/classie.js b/public/js/classie.js
similarity index 100%
rename from js/classie.js
rename to public/js/classie.js
diff --git a/js/del.js b/public/js/del.js
similarity index 100%
rename from js/del.js
rename to public/js/del.js
diff --git a/js/jquery-1.11.1.min.js b/public/js/jquery-1.11.1.min.js
similarity index 100%
rename from js/jquery-1.11.1.min.js
rename to public/js/jquery-1.11.1.min.js
diff --git a/scss/_breadcrumb.scss b/public/scss/_breadcrumb.scss
similarity index 100%
rename from scss/_breadcrumb.scss
rename to public/scss/_breadcrumb.scss
diff --git a/scss/_component.scss b/public/scss/_component.scss
old mode 100755
new mode 100644
similarity index 100%
rename from scss/_component.scss
rename to public/scss/_component.scss
diff --git a/scss/_global.scss b/public/scss/_global.scss
similarity index 100%
rename from scss/_global.scss
rename to public/scss/_global.scss
diff --git a/scss/_grid.scss b/public/scss/_grid.scss
similarity index 100%
rename from scss/_grid.scss
rename to public/scss/_grid.scss
diff --git a/scss/_hgtable.scss b/public/scss/_hgtable.scss
similarity index 100%
rename from scss/_hgtable.scss
rename to public/scss/_hgtable.scss
diff --git a/scss/_mixins.scss b/public/scss/_mixins.scss
similarity index 100%
rename from scss/_mixins.scss
rename to public/scss/_mixins.scss
diff --git a/scss/_pagination.scss b/public/scss/_pagination.scss
similarity index 100%
rename from scss/_pagination.scss
rename to public/scss/_pagination.scss
diff --git a/scss/_reset.scss b/public/scss/_reset.scss
similarity index 100%
rename from scss/_reset.scss
rename to public/scss/_reset.scss
diff --git a/scss/_typo.scss b/public/scss/_typo.scss
similarity index 100%
rename from scss/_typo.scss
rename to public/scss/_typo.scss
diff --git a/scss/_variables.scss b/public/scss/_variables.scss
similarity index 100%
rename from scss/_variables.scss
rename to public/scss/_variables.scss
diff --git a/scss/master.scss b/public/scss/master.scss
similarity index 100%
rename from scss/master.scss
rename to public/scss/master.scss
diff --git a/stylesheets/master.css b/public/stylesheets/master.css
similarity index 100%
rename from stylesheets/master.css
rename to public/stylesheets/master.css
diff --git a/stylesheets/master.css.map b/public/stylesheets/master.css.map
similarity index 100%
rename from stylesheets/master.css.map
rename to public/stylesheets/master.css.map
diff --git a/template/item.html.twig b/template/item.html.twig
index 6626cbf..e221821 100644
--- a/template/item.html.twig
+++ b/template/item.html.twig
@@ -47,15 +47,15 @@
                             <div class="tocontact">
                                 <p>Contacter <br/>l'annonceur</p>
                             </div>
-                            <a href="mailto:{{ annonceur.email }}"><img src="../img/email2.png" alt="email" title="Contacter l'annonceur"/></a>
+                            <a href="mailto:{{ annonceur.email }}"><img src="../public/img/email2.png" alt="email" title="Contacter l'annonceur"/></a>
                         </div>
                         <div class="columns modify sm-hide-only align-center">
                             <div class="tomodify">
                                 <p>Modifier/Supprimer <br/>l'annonce</p>
                             </div>
                             <div class="align-center">
-                                <a href="{{ chemin }}del/{{ annonce.id_annonce }}"><img src="../img/bin.png" alt="bin" title="Supprimer"/></a>
-                                <a href="{{ chemin }}item/{{ annonce.id_annonce }}/edit"><img src="../img/edit.png" alt="bin" title="Modifier"/></a>
+                                <a href="{{ chemin }}del/{{ annonce.id_annonce }}"><img src="../public/img/bin.png" alt="bin" title="Supprimer"/></a>
+                                <a href="{{ chemin }}item/{{ annonce.id_annonce }}/edit"><img src="../public/img/edit.png" alt="bin" title="Modifier"/></a>
                             </div>
                         </div>
                     </div>
@@ -77,5 +77,5 @@
         </a>
     </div>
     <div id="zoomImg"><div id="zoomClose">x</div><img src="{{ photo.first.url_photo }}" alt=""/></div>
-    <script src="../js/annonce.js" id="sln_bar"></script>
+    <script src="../public/js/annonce.js" id="sln_bar"></script>
 {% endblock %}
\ No newline at end of file
diff --git a/template/main.html.twig b/template/main.html.twig
index b1f95fc..6aa0e62 100644
--- a/template/main.html.twig
+++ b/template/main.html.twig
@@ -5,7 +5,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
     <link rel="stylesheet" href="{{ chemin }}stylesheets/master.css"/>
     <link rel="stylesheet" type="text/css" href="{{ chemin }}stylesheets/component.css"/>
-    <script src="../js/jquery-1.11.1.min.js" id="sln_bar"></script>
+    <script src="../public/js/jquery-1.11.1.min.js" id="sln_bar"></script>
     <title>RatCoin</title>
 </head>
 <body>
diff --git a/template/main_min.html.twig b/template/main_min.html.twig
index ab1d164..0ba57be 100644
--- a/template/main_min.html.twig
+++ b/template/main_min.html.twig
@@ -5,7 +5,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
     <link rel="stylesheet" href="{{ chemin }}stylesheets/master.css"/>
     <link rel="stylesheet" type="text/css" href="{{ chemin }}stylesheets/component.css"/>
-    <script src="../js/jquery-1.11.1.min.js" id="sln_bar"></script>
+    <script src="../public/js/jquery-1.11.1.min.js" id="sln_bar"></script>
     <title>RatCoin</title>
 </head>
 <body>
-- 
GitLab