From 7dd53130626fe8228f0162a33a045729518e2e05 Mon Sep 17 00:00:00 2001 From: Emmanuel ROY Date: Tue, 17 Dec 2019 08:56:34 +0100 Subject: [PATCH] Ajout de fichiers de documentation en markdown MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TODO: créé les pages de blog (sommaire,news) permettant d'afficher les fichiers md TODO: créer les commandes complétement TODO: envoyer les bugs wordpress TODO: corriger le bug de création de la base de donnée pour prestashop --- application/class/Modele.php | 17 ++++- application/include/modeles/wordpress.model | 3 - data/blog/action.md | 78 ++++++++++++++++++++ data/blog/comment_troller_efficacement.md | 11 +++ data/blog/conduit.md | 45 +++++++++++ data/blog/controleur_base.md | 54 ++++++++++++++ data/blog/controleur_rest_html.md | 82 +++++++++++++++++++++ data/blog/vues.md | 50 +++++++++++++ 8 files changed, 336 insertions(+), 4 deletions(-) create mode 100644 data/blog/action.md create mode 100644 data/blog/comment_troller_efficacement.md create mode 100644 data/blog/conduit.md create mode 100644 data/blog/controleur_base.md create mode 100644 data/blog/controleur_rest_html.md create mode 100644 data/blog/vues.md diff --git a/application/class/Modele.php b/application/class/Modele.php index e8fd25a..43ef1d5 100644 --- a/application/class/Modele.php +++ b/application/class/Modele.php @@ -11,9 +11,24 @@ class Modele{ if(file_exists(MODELS_PATH.DIRECTORY_SEPARATOR.$base_param['name'].'.model')){ $fichier = file(MODELS_PATH.DIRECTORY_SEPARATOR.$base_param['name'].'.model'); foreach ($fichier as $ligne_num => $ligne) { - if (preg_match("#[ ]*([a-zA-Z-_+]*)[ ]*[:][ ]*([0-9a-zA-Z-_+ ']*[ ]*)#", $ligne, $matches)) { + //on recherche le pattern des parametres + if (preg_match("#[ ]*([a-zA-Z_+]*)[ ]*[:][ ]*([a-zA-Z0-9-_+'\{\,\ \}\(\)]*[ ]*)#", $ligne, $matches)) { + //on recherche le pattern des tableau dans la valeur du paramètre + if (preg_match("#{.*}#", $matches[2])) { + if (preg_match_all("#(?[0-9a-zA-Z-_+]*)#", $matches[2], $arrayMatches)) { + $array = array(); + foreach ($arrayMatches['capture'] as $val) { + if ($val != '') { + $array[] = $val; + } + } + $this->page[$matches[1]] = $array; + continue; + } + } $this->page[$matches[1]] = $matches[2]; } + } $this->page['url_params'] = $base_param['params']; }else{ diff --git a/application/include/modeles/wordpress.model b/application/include/modeles/wordpress.model index c00b5f1..a5f383f 100644 --- a/application/include/modeles/wordpress.model +++ b/application/include/modeles/wordpress.model @@ -2,6 +2,3 @@ name : wordpress page_title : Accueil de l'application modulaire description : zatou stra bracadabla params : params - - - if(!is_array($menu)){$menu = array();} \ No newline at end of file diff --git a/data/blog/action.md b/data/blog/action.md new file mode 100644 index 0000000..3177228 --- /dev/null +++ b/data/blog/action.md @@ -0,0 +1,78 @@ +# Les actions +Celles-ci peuvent être appellé dans une vue par la méthode static qu'il convient d'instancier dans un fichier se trouvant dans le dossier `application/include/action/` +par exemple: +```php +render('action', array('var1' => $var1, 'var2' => $var2, 'var3' => $var3)); + } + public function variableSlug($data) + { + /**your action algorythm**/ + if (isset($data[0])) { + $var1 = $data[0]; + } else { + $var1 = 1; + } + if (isset($data[1])) { + $var2 = $data[1]; + } else { + $var2 = 2; + } + if (isset($data[2])) { + $var3 = $data[2]; + } else { + $var3 = 3; + } + ob_start() + print_r($data) + return ob_get_clean(); + } + public function makeHttp11($data) + { + $data = array('myval' => 25); + + $request = new HttpMethodRequete(); + $request->setUrl(Url::absolute_link_rewrite(false,'accueil',['var10'=>'val10']))->get($data); + $request->setUrl(Url::absolute_link_rewrite(false,'accueil',['var10'=>'val10']))->post($data); + $request->setUrl(Url::absolute_link_rewrite(false, 'accueil', ['var10' => 'val10']))->put($data); + $request->setUrl(Url::absolute_link_rewrite(false,'accueil',['var10'=>'val10']))->delete($data); + } +} +``` + +avec cet accès dans la vue: +```php + +{{\MVC\Classe\ControlleurAction::inserer('default',[])}} +{{\MVC\Classe\ControlleurAction::inserer('default.default',[4,5,6])}} +{{\MVC\Classe\ControlleurAction::inserer('default.variableSlug',['var1','var2','var3'])}} + +{{\MVC\Classe\ControlleurAction::inserer('default.makeHttp11',[])}} +``` + +il faut absolument que l'action retourne du texte soit par la la méthode `render` soit par un `système de tampon` \ No newline at end of file diff --git a/data/blog/comment_troller_efficacement.md b/data/blog/comment_troller_efficacement.md new file mode 100644 index 0000000..35c8dfe --- /dev/null +++ b/data/blog/comment_troller_efficacement.md @@ -0,0 +1,11 @@ +# Comment troller efficacement +1) prendre en compte l'aspect actuel de l'information +>en effet si absolument rendre compte que l'information n'est basé sur les faits divers et principalement sur l'actualité économique. En effet la plupart des médias ne parlent pas de l'information économique et informatique. En faisant cela vous devriez voir les niche qui doivent être visé par la trool attitude. Principalement parlez des faits divers ne nourris pas le trool. Et ne permet pas efficacement de nourrir une informations qui serait humoristique. Ainsi un troll d'humour serait basé sur des fait divers détourné et des sites comme le _Gorafi_ et l'_Echo de la boucle_ sont des niches a trool. +2) se mettre en avant de l'information visée en se basant sur des faits vécu +>en effet vous ne pouvez troller efficacement que sur des faits qui se rapporte a ce que vous avez lu en amont et que vous vivez actuellement par exemple si vous connaissez le monde des hackers et leurs déviance vous pouvez éviter les personnes frauduleuse mettant en avant des news dont vous pouvez mettre en garde au devant de touts les autres +3) se gardez de tout propos autre que ceux que vous mettez en avant +>avec des textes courts expliquant par des sources ce que vous visez vous pouvez mettre en avant votre informations vécue ainsi vous troller ceux qui n'ont pas vécu l’information dont vous parlez au moment de la lecture +4) attendre.. +>lorsque vous troller il se peut que l'information ne parvienne pas au oreille de ceux qui pourraient répondre. surtout si vous faites preuve de surréalisme. Ainsi vous expliquer ce que le pendant du monde réel as de pire et peut ainsi mettre en avant une expérience vécu. +5) encore attendre... +>si vous êtes progressiste il se peut que certaines personnes vous suivent afin de mieux comprendre ce que vous voulez dire dans ce texte que vous partager, n'oubliez surtou pas de fournir le plus de sources documentées et scientifiquement valable afin que votre article, brève, ou chronique soit effectivement une source d'information fiable. Ainsi ce troll devient une source mal écrit contenant des documents connexes ! \ No newline at end of file diff --git a/data/blog/conduit.md b/data/blog/conduit.md new file mode 100644 index 0000000..50ac807 --- /dev/null +++ b/data/blog/conduit.md @@ -0,0 +1,45 @@ +# Le conduit +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: +```yml +home_route: + path: / + defaults: { controller: 'FooController::indexAction' } + +foo_route: + path: /foo + defaults: { controller: 'FooConduit::index' } + +foo_placeholder_route: + path: /foo/{id} + defaults: { controller: 'FooConduit::load' } + requirements: + id: '[0-9]+' +``` + +et définir le Conduit correspondant avec les méthodes correspondantes dans le dossier `application/include/conduits`, ici: +```php +render('foo', array('page_title' => 'Foo', 'description' => 'FooConduit')); + } + + // Route('/foo/{id}') + public function load() + { + echo "load of foo"; + return $this->render('foo', array('page_title' => 'Foo', 'description' => 'FooConduit', 'id' => $this->id)); + + } +} +``` diff --git a/data/blog/controleur_base.md b/data/blog/controleur_base.md new file mode 100644 index 0000000..e1efd05 --- /dev/null +++ b/data/blog/controleur_base.md @@ -0,0 +1,54 @@ +# Le contrôleur de base + +il vous faut instancier trois 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 +'blade', + "templating_b"=>'twig', + "templating_c"=>'edge' + ); +//recuperation des paramètres contenus dans le .model +$var[] = $params2; +foreach( $params1 as $key => $value ){ + $var[] = $value; +} +Logger::addLog('ok', 'Hello world'); +``` +tout en sachant que la variable `$templateData` est envoyé à la vue Blade + +* application/include/vues/view/name.blade.php +```php +@extends('body') + +@section('sidebar') + @parent +

This is appended to the master sidebar.

+@endsection + +@section('content') + Revenir a l'acceuil ? +
+ {{$templating_a}}::{{$templating_b}}::{{$templating_c}} + {{-- récupération des paramètres contenus dans le model --}} + {{$params2}} + @foreach ($param1 as $key => $value) + {{$key}} -> {{$value}} + @endforeach + +@endsection +``` +par exemple... \ No newline at end of file diff --git a/data/blog/controleur_rest_html.md b/data/blog/controleur_rest_html.md new file mode 100644 index 0000000..63e93c8 --- /dev/null +++ b/data/blog/controleur_rest_html.md @@ -0,0 +1,82 @@ +# Le contrôleur de REST / HTML +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. + +*Voici un exemple avec `RestResponse` +```php +params); + Dumper::dump($this->data); + $text = ob_get_clean(); + Logger::addLog('put', '____Hello Put____' . PHP_EOL . $text); + } + public function delete() + { + ob_start(); + Dumper::dump($this->params); + Dumper::dump($this->data); + $text = ob_get_clean(); + Logger::addLog('delete', '____Hello Delete:____' . PHP_EOL . $text); + } + public function get() + { + ob_start(); + Dumper::dump($this->params); + Dumper::dump($this->data); + $text = ob_get_clean(); + Logger::addLog('get', '____Hello GET____' . PHP_EOL . $text); + } + public function post() + { + ob_start(); + Dumper::dump($this->params); + Dumper::dump($this->data); + $text = ob_get_clean(); + Logger::addLog('post', '____Hello POST____' . PHP_EOL . $text); + } + } +``` + +*voici un exemple avec `HttpResponse` +```php +params); + Dumper::dump($this->data); + $text = ob_get_clean(); + Logger::addLog('get', '____Hello GET____' . PHP_EOL . $text); + return $this->render('name', array('var' => $text)); + } + public function post() + { + ob_start(); + Dumper::dump($this->params); + Dumper::dump($this->data); + $text = ob_get_clean(); + Logger::addLog('post', '____Hello POST____' . PHP_EOL . $text); + return $this->render('name', array('var' => $text)); + } +} +``` + +l'accès se fait par l'url `http://monapp.local/{name}` \ No newline at end of file diff --git a/data/blog/vues.md b/data/blog/vues.md new file mode 100644 index 0000000..9eb212a --- /dev/null +++ b/data/blog/vues.md @@ -0,0 +1,50 @@ + #Les vues Blade + +Elles sont chargées dans cette ordre: + +* application/include/vues/system +* application/include/vues/layout +* application/include/vues/view + +ainsi la vue standard peut étendre de `application/include/vues/layout/body.blade.php` +```php +@extends('system') + +@section('body') + + @section('sidebar') + This is the master sidebar. + @show + +
+ @yield('content') +
+ +@endsection +``` +qui étends de `application/include/vues/system/system.blade.php` +```php + + + + {{$page_title}} + + + @section('top-css') + @endsection + + + + +@section('top-javascript') +@endsection + +@yield('body') + +@section('bottom-javascript') +@endsection + + + + +``` \ No newline at end of file