diff --git a/application/class/Vue.php b/application/class/Vue.php index eead4eb..5966914 100644 --- a/application/class/Vue.php +++ b/application/class/Vue.php @@ -16,24 +16,28 @@ class Vue{ extract( $baseControlleur->modele->page ); ob_start(); + if(file_exists(VIEW_PATH.DIRECTORY_SEPARATOR."view".DIRECTORY_SEPARATOR.$name.".blade.php")) { - //l'inclusion du controlleur doit renvoyer le tableau $templateData - require CONTROLLER_PATH.DIRECTORY_SEPARATOR.$name.'.php'; + //l'inclusion du controlleur doit renvoyer le tableau $templateData + require CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php'; + //TEMPLATING BLADE + $paths = new \SplPriorityQueue; - $paths = new \SplPriorityQueue; + $paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "system", 100); + $paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "layout", 200); + $paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "view", 300); - $paths->insert(VIEW_PATH.DIRECTORY_SEPARATOR."system", 100); - $paths->insert(VIEW_PATH.DIRECTORY_SEPARATOR."layout", 200); - $paths->insert(VIEW_PATH.DIRECTORY_SEPARATOR."view", 300); + $renderer = new \Windwalker\Renderer\BladeRenderer($paths, array('cache_path' => VIEW_PATH . DIRECTORY_SEPARATOR . "cache")); - $renderer = new \Windwalker\Renderer\BladeRenderer($paths, array('cache_path' => VIEW_PATH.DIRECTORY_SEPARATOR."cache")); + //de base on ajoute les parametres du .model et ceux provenant de l'url + foreach ($baseControlleur->modele->page as $key => $value) { + $templateData[$key] = $value; + } + echo $renderer->render($name, $templateData); - //de base on ajoute les parametres du .model et ceux provenant de l'url - foreach($baseControlleur->modele->page as $key => $value){ - $templateData[$key] = $value; + }else{ + include CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php'; } - echo $renderer->render( $name , $templateData); - $this->ecran = ob_get_clean(); } diff --git a/application/config/authentification-config-example.php b/application/config/authentification-config-example.php index b29bc7b..6acacf7 100644 --- a/application/config/authentification-config-example.php +++ b/application/config/authentification-config-example.php @@ -5,7 +5,10 @@ */ $config = [ //Location where to redirect users once they authenticate with a provider - 'callback' => 'http://localhost:8080/' . \MVC\Classe\Url::link_rewrite(false, 'compte', []), + //Ne fonctionne pas car on est sur un serveur a l'intérieur d'un réseau personnel + //'callback' => $_SERVER['REQUEST_SCHEME'] . "://" . $_SERVER['HTTP_HOST'] . "/" . \MVC\Classe\Url::link_rewrite(false, 'compte', []), + 'callback' => PATH_URL . \MVC\Classe\Url::link_rewrite(false, 'compte', []), + //Providers specifics 'providers' => [ diff --git a/application/include/controlleurs/CGU.php b/application/include/controlleurs/CGU.php new file mode 100644 index 0000000..2cedfde --- /dev/null +++ b/application/include/controlleurs/CGU.php @@ -0,0 +1,12 @@ +Le conduit est une nouveautée de l'application, celle permet de réaliser +un controlleur similaire a Symfony qui est dénomé ici Conduit car il prend +en paramètre une route défini dans le fichier routing.yml. + Cette fonctionnalité permet de choisir la route indépendamment du moteur. il faut instancier le fichier `application/config/files/routing.yml` avec la route de base et les routes que vous voulez conduire, par exemple: diff --git a/data/blog/controleur_facile.md b/data/blog/controleur_facile.md new file mode 100644 index 0000000..5d13fb1 --- /dev/null +++ b/data/blog/controleur_facile.md @@ -0,0 +1,22 @@ +# Le contrôleur de base le plus simple possible + +il vous faut instancier deux fichiers sous cette forme: + +* application/include/modeles/name.model +``` +name : name +page_title : Page de l'application +description : Description de la page +params1 : {val1,val2} +params2 : val +``` +il faut absolument renseigner le name avec le nom générique de la page, page_title permet de modifier le contenu de la balise html title et description permet de modifier le contenu de la balise meta description. Enfin les parametres suivant sont optionnels et permet de passer des valeur dans le controlleur ou dans la vue. + +* application/include/controlleurs/name.php +```php +Ici le modèle (.model) n'est pas instancié, cela ressemble à symfony. +Étendre avec RESTResponse permet d'ajouter les methode get, put, post, delete +Étendre avec HttpResponse permet de n'avoir que les méthode Http qui sont utilisées + normalement avec tout php. + +>Donc vous pouvez tout a fait écrire une application avec HttpResponse car l'on peut appeler des vues blade par la méthode render(). +C'est un choix applicatif qu'il faut faire au moment de la contruction de l'application. + + Vous devez instancier le fichier `application/include/controlleurs/{Name}HttpReponse.php` qui est une classe peut implémenter `MVC\Classe\Implement\RestReponse` ou `MVC\Classe\Implement\HttpReponse` sachant que la différence se situe au niveau des méthodes qu'il doit instancier.