Vous êtes connecté en tant que anonymous Se Deconnecter
Browse code

Application nettoyé, Ajout de la lib composer hybridauth/hybridauth TODO: integrer hybrid auth sur une page simple d'authentification

Emmanuel ROY authored on 09/09/2019 22:37:17
Showing 27 changed files
... ...
@@ -1,3 +1,3 @@
1 1
 vendor
2
-cache
2
+application/include/vues/cache/*
3 3
 /composer.lock
... ...
@@ -2,9 +2,10 @@
2 2
 <module type="WEB_MODULE" version="4">
3 3
   <component name="NewModuleRootManager">
4 4
     <content url="file://$MODULE_DIR$">
5
-      <sourceFolder url="file://$MODULE_DIR$/../MVC---Objetapplication/objets" isTestSource="false" packagePrefix="MVC\Objets\" />
6
-      <sourceFolder url="file://$MODULE_DIR$/../MVC---Objetapplication/class" isTestSource="false" packagePrefix="MVC\Classe\" />
5
+      <sourceFolder url="file://$MODULE_DIR$/../MVC-Modular-WindWalkerapplication/objets" isTestSource="false" packagePrefix="MVC\Objets\" />
6
+      <sourceFolder url="file://$MODULE_DIR$/../MVC-Modular-WindWalkerapplication/class" isTestSource="false" packagePrefix="MVC\Classe\" />
7 7
       <excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
8
+      <excludeFolder url="file://$MODULE_DIR$/vendor/hybridauth/hybridauth" />
8 9
       <excludeFolder url="file://$MODULE_DIR$/vendor/illuminate/container" />
9 10
       <excludeFolder url="file://$MODULE_DIR$/vendor/illuminate/events" />
10 11
       <excludeFolder url="file://$MODULE_DIR$/vendor/illuminate/filesystem" />
... ...
@@ -11,6 +11,7 @@
11 11
       <path value="$PROJECT_DIR$/vendor/illuminate/container" />
12 12
       <path value="$PROJECT_DIR$/vendor/symfony/finder" />
13 13
       <path value="$PROJECT_DIR$/vendor/windwalker/structure" />
14
+      <path value="$PROJECT_DIR$/vendor/hybridauth/hybridauth" />
14 15
     </include_path>
15 16
   </component>
16 17
   <component name="PhpProjectSharedConfiguration" php_language_level="7.1" />
... ...
@@ -1,6 +1,6 @@
1
-# MVC - en Programmation Orienté Objet
1
+# Modular Symfony Application
2 2
 ---
3
-Cette architecture MVC Objet est composée d'un layout HTML5 Standard
3
+Cette architecture MVC Objet est composée d'un layout Blade (Laravel)
4 4
 
5 5
 Les urls d'accès sont de type www.domain.tld/page/varname1/varvalue1/varname2/varvalue2/ ...
6 6
 
... ...
@@ -10,7 +10,7 @@ Afin de créer une nouvelle page vous devez instancier trois fichiers contenant
10 10
 "application > include > controlleurs > mapage.php" contenant:
11 11
 > les commandes permettant de gérer un formulaire
12 12
 > un ou plusieurs accès à la base de données
13
-> les variables ainsi instanciées permettent l'affichage dans la vue
13
+> les variables instanciées dans $templateData permettent l'affichage dans la vue blade
14 14
 
15 15
 "application > include > modeles > mapage.model" contenant
16 16
 >les variables spécifiques à la page de l'application exemple:
... ...
@@ -19,10 +19,9 @@ name : le nom de mapage
19 19
 description : ma description pour les moteur de recherche
20 20
 params : paramètre(s) supplémentaire(s)
21 21
 ```
22
+"application > include > vues > view > mapage.blade.php contenant
23
+> le layout blade a instancier
22 24
 
23
-"application > include > vues > mapage.phtml" contenant
24
->les blocs html qui seront affichés dans le layout standard
25
-
26
-Je ne peut que vous proposer de regarder dans le dossier layout afin de comprendre comment cela est affiché!
27
-
28
-pour le reste, c'est a vous de voir, mais c'est une architecture fonctionnelle à 2.5 vitesses
25
+pour les modules symfony, c'est un peu plus compliqué il faut instancier ces trois précédents fichiers en faisant appel la class Modular,
26
+ne pas oublier de référencer le module dans le dossier modules > setup > registre.model
27
+et faire correspondre le nom du dossier avec le registre, ici l'exemple est syf43.
29 28
\ No newline at end of file
... ...
@@ -17,6 +17,7 @@ class Application
17 17
 	public function launch(){
18 18
 
19 19
 		$controlleur = new Controlleur($this);
20
+		//si la page n'est un controlleur d'action alors on affiche l'écran
20 21
 		if(!$this->url->page['control']) {
21 22
             print($controlleur->vue->ecran);
22 23
         }
... ...
@@ -18,8 +18,8 @@ class Controlleur{
18 18
             $url_params = $application->url->page['params'];
19 19
 	        require TRAITEMENT_PATH . DIRECTORY_SEPARATOR . $application->url->page['name'] . '.php';
20 20
         } else {
21
-            $this->modele = new modele($application->url->page);
22
-            $this->vue = new vue($this);
21
+            $this->modele = new Modele($application->url->page);
22
+            $this->vue = new Vue($this);
23 23
         }
24 24
 	}
25 25
 	
... ...
@@ -10,8 +10,10 @@ class Url
10 10
 	
11 11
 	public function __construct(){
12 12
 
13
+	    //on créé le registre des modules symfony
13 14
 	    $this->registre = new \MVC\Classe\ModularRegister();
14 15
 
16
+	    //définition des parametres de base
15 17
         $page = array();
16 18
         $page['name'] = 'accueil';
17 19
         $page['description'] = "";
... ...
@@ -42,18 +44,19 @@ class Url
42 44
 
43 45
         }
44 46
 
45
-        //vérification du nombre de parametres: s'il n'existe pas autant de clé que
46
-        // de valeurs on sort de la fonction et on renvoie une page d'erreur.
47
+        //vérification du nombre de parametres:
47 48
         $numParts = count($urlParts);
48
-
49
+        //s'il n'existe pas autant de clé que de valeurs, ce peut ^etre un module symfony
49 50
         if ( $numParts%2 != 0 ) {
51
+            //si un module symfony n'est pas reférencé avec le nom de la page, on renvoi un erreur
50 52
             if( !in_array($page['name'], $this->registre->getIndex()) ){
51 53
                 $page['name'] = 'error';
52 54
                 $page['params'] = array();
53 55
                 $this->page = $page;
54 56
                 return;
55 57
             }
56
-        }else if ( $numParts != 0 ){
58
+        //cas d'utilisation normal : il existe autant de clé que de valeurs
59
+        } else if ( $numParts != 0 ) {
57 60
             $values = array();
58 61
             $keys = array();
59 62
             foreach( $urlParts as $key => $value ){
... ...
@@ -15,24 +15,25 @@ class Vue{
15 15
         $templateData = array();
16 16
 		extract( $baseControlleur->modele->page );
17 17
 
18
-		//print_r($name);
19
-
20 18
 		ob_start();
19
+
20
+		//l'inclusion du controlleur doit renvoyer le tableau $templateData
21 21
         require CONTROLLER_PATH.DIRECTORY_SEPARATOR.$name.'.php';
22 22
 
23 23
         $paths = new \SplPriorityQueue;
24
+
24 25
         $paths->insert(VIEW_PATH.DIRECTORY_SEPARATOR."system", 100);
25
-        $paths->insert(VIEW_PATH.DIRECTORY_SEPARATOR."templating", 200);
26
-        //$paths->insert('path/to/theme', 300);
27
-        $renderer = new \Windwalker\Renderer\BladeRenderer($paths, array('cache_path' => VIEW_PATH.DIRECTORY_SEPARATOR."cache"));
28
-        echo $renderer->render( $name , $templateData);
26
+        $paths->insert(VIEW_PATH.DIRECTORY_SEPARATOR."layout", 200);
27
+        $paths->insert(VIEW_PATH.DIRECTORY_SEPARATOR."view", 300);
29 28
 
29
+        $renderer = new \Windwalker\Renderer\BladeRenderer($paths, array('cache_path' => VIEW_PATH.DIRECTORY_SEPARATOR."cache"));
30 30
 
31
-        /*require VIEW_PATH.DIRECTORY_SEPARATOR.$name.'.phtml';
32
-		$this->block_body = ob_get_clean();
31
+        //de base on ajoute les parametres du .model et ceux provenant de l'url
32
+        foreach($baseControlleur->modele->page as $key => $value){
33
+            $templateData[$key] = $value;
34
+        }
35
+        echo $renderer->render( $name , $templateData);
33 36
 
34
-		ob_start();
35
-		require LAYOUT_PATH.DIRECTORY_SEPARATOR."standard.phtml";*/
36 37
         $this->ecran = ob_get_clean();
37 38
 
38 39
 	}
39 40
deleted file mode 100644
... ...
@@ -1,2 +0,0 @@
1
-<h1>Accueil</h1>
2
-<br /><br />
3 0
\ No newline at end of file
4 1
deleted file mode 100644
... ...
@@ -1 +0,0 @@
1
-<h1>ERREUR poo_v1</h1>
2 0
new file mode 100644
... ...
@@ -0,0 +1,13 @@
1
+@extends('system')
2
+
3
+@section('body')
4
+
5
+    @section('sidebar')
6
+        This is the master sidebar.
7
+    @show
8
+
9
+    <div class="container">
10
+        @yield('content')
11
+    </div>
12
+
13
+@endsection
0 14
\ No newline at end of file
1 15
deleted file mode 100644
... ...
@@ -1 +0,0 @@
1
-<?php $app->load(); ?>
2 0
\ No newline at end of file
3 1
deleted file mode 100644
... ...
@@ -1,14 +0,0 @@
1
-<html>
2
-<head>
3
-    <title>App Name</title>
4
-</head>
5
-<body>
6
-@section('sidebar')
7
-    This is the master sidebar.
8
-@show
9
-
10
-<div class="container">
11
-    @yield('content')
12
-</div>
13
-</body>
14
-</html>
15 0
\ No newline at end of file
16 1
new file mode 100644
... ...
@@ -0,0 +1,9 @@
1
+<html>
2
+<head>
3
+    <title>{{$page_title}}</title>
4
+    <meta name="description" lang="fr" content="{{$description}}" />
5
+</head>
6
+<body>
7
+@yield('body')
8
+</body>
9
+</html>
0 10
\ No newline at end of file
1 11
similarity index 92%
2 12
rename from application/include/vues/templating/accueil.blade.php
3 13
rename to application/include/vues/view/accueil.blade.php
... ...
@@ -1,4 +1,4 @@
1
-@extends('layout')
1
+@extends('body')
2 2
 
3 3
 @section('sidebar')
4 4
     @parent
5 5
similarity index 100%
6 6
rename from application/include/vues/templating/error.blade.php
7 7
rename to application/include/vues/view/error.blade.php
8 8
similarity index 100%
9 9
rename from application/include/vues/templating/syf43.blade.php
10 10
rename to application/include/vues/view/syf43.blade.php
11 11
deleted file mode 100644
... ...
@@ -1,4 +0,0 @@
1
-
2
-  <div>
3
-		<?php echo $this->block_body ?>
4
-  </div>
5 0
deleted file mode 100644
... ...
@@ -1,2 +0,0 @@
1
-
2
-<script src="<?php echo PATH_URL; ?>js/script.js"></script>
3 0
\ No newline at end of file
4 1
deleted file mode 100644
... ...
@@ -1,5 +0,0 @@
1
-<div>
2
-
3
-    <a href="http://github.com/Acksop" >Follow Me on Github</a>
4
-
5
-</div>
6 0
\ No newline at end of file
7 1
deleted file mode 100644
... ...
@@ -1,20 +0,0 @@
1
-<!doctype html>
2
-
3
-<html lang="fr">
4
-
5
-<head>
6
-  <meta charset="utf-8">
7
-
8
-  <title><?php echo $page_title; ?></title>
9
-  <meta name="description" content= "<?php echo $description; ?>" >
10
-
11
-  <!-- Mobile viewport optimized: h5bp.com/viewport -->
12
-  <meta name="viewport" content="width=device-width">
13
-
14
-    <!-- Les favicons -->
15
-    <link rel="apple-touch-icon" href="<?php echo PATH_URL; ?>apple-touch-icon.png">
16
-    <link rel="icon" href="<?php echo PATH_URL; ?>favicon.png" />
17
-
18
-  <?php include LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."top-css.phtml"; ?>
19
-
20
-</head>
21 0
deleted file mode 100644
... ...
@@ -1,7 +0,0 @@
1
-<div>
2
-    <h2>Menu Experiments</h2>
3
-    <ul>
4
-        <li><a href="<?php echo PATH_URL; ?>accueil">Accueil</a></li>
5
-        <li><a href="<?php echo PATH_URL; ?>error">Error</a></li>
6
-    </ul>
7
-</div>
8 0
deleted file mode 100644
... ...
@@ -1,2 +0,0 @@
1
-
2
-<link rel="stylesheet" href="<?php echo PATH_URL; ?>css/style.css">
3 0
\ No newline at end of file
4 1
deleted file mode 100644
... ...
@@ -1,27 +0,0 @@
1
-<?php
2
-define('LAYOUT_TEMPLATE',dirname(__FILE__).DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'standard');
3
-
4
-require LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."head.phtml";
5
-?>
6
-
7
-
8
-<body>
9
-
10
-  <!-- Prompt IE 6 users to install Chrome Frame. Remove this if you support IE 6.
11
-       chromium.org/developers/how-tos/chrome-frame-getting-started -->
12
-  <!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em> <a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p><![endif]-->
13
-  
14
-  <?php include LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."header.phtml"; ?>
15
-
16
-  <div class="contents">
17
-    <?php include LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."body.phtml"; ?>
18
-  </div>
19
-
20
-  <?php include LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."footer.phtml"; ?>
21
-
22
-
23
-  <!-- JavaScript at the bottom for fast page loading -->
24
-  <?php include LAYOUT_TEMPLATE.DIRECTORY_SEPARATOR."bottom-javascript.phtml"; ?>
25
-  
26
-</body>
27
-</html>
28 0
deleted file mode 100644
... ...
@@ -1,21 +0,0 @@
1
-<?php
2
-namespace MVC\Module\Setup;
3
-
4
-class Syf43 {
5
-
6
-    /**
7
-     * @param none
8
-     * @return modular_symfony_web
9
-     */
10
-
11
-    public function load($name) {
12
-        ob_start();
13
-        require( MODULES_PATH . DIRECTORY_SEPARATOR . $name . DIRECTORY_SEPARATOR . "public" . DIRECTORY_SEPARATOR . "index.php" );
14
-        $modularApp = ob_get_clean();
15
-        echo $modularApp;
16
-    }
17
-
18
-    public static function twigLoader($name){
19
-        require MODULES_PATH . DIRECTORY_SEPARATOR . "setup" . DIRECTORY_SEPARATOR . $name . ".twig.class.php";
20
-    }
21
-}
22 0
\ No newline at end of file
... ...
@@ -9,6 +9,7 @@
9 9
 
10 10
         "php": "^7.1.3",
11 11
         "windwalker/renderer": "3.*",
12
-        "illuminate/view": "4.*"
12
+        "illuminate/view": "4.*",
13
+        "hybridauth/hybridauth": "~3.0"
13 14
     }
14 15
 }
... ...
@@ -9,5 +9,5 @@ define("MODULES_PATH", APPLICATION_PATH.DIRECTORY_SEPARATOR."modules");
9 9
 
10 10
 require VENDOR_PATH.DIRECTORY_SEPARATOR."autoload.php";
11 11
 
12
-$poo_v1 = new \MVC\Classe\Application();
13
-$poo_v1->launch();
12
+$poo_v5 = new \MVC\Classe\Application();
13
+$poo_v5->launch();