Ajout de fichiers de documentation en markdown

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
This commit is contained in:
Emmanuel ROY 2019-12-17 08:56:34 +01:00
parent bcc743ea70
commit 7dd5313062
8 changed files with 336 additions and 4 deletions

View file

@ -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("#(?<capture>[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{

View file

@ -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();}

78
data/blog/action.md Normal file
View file

@ -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
<?php
use MVC\Classe\HttpMethodRequete;
use MVC\Classe\Implement\Action;
use MVC\Classe\Url;
class DefaultAction extends Action
{
public function default($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;
}
return $this->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`

View file

@ -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 linformation 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 !

45
data/blog/conduit.md Normal file
View file

@ -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
<?php
use MVC\Classe\Implement\Conduit;
class FooConduit extends Conduit
{
// Route('/foo')
public function index()
{
echo "blob of foo";
return $this->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));
}
}
```

View file

@ -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
<?php
use MVC\Classe\Logger;
$templateData = array(
"templating_a"=>'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
<p>This is appended to the master sidebar.</p>
@endsection
@section('content')
<a href="{{ \MVC\Classe\Url::link_rewrite(false, 'accueil', []) }}">Revenir a l'acceuil ?</a>
<hr/>
{{$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...

View file

@ -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
<?php
use MVC\Classe\Dumper;
use MVC\Classe\Implement\RestReponse;
use MVC\Classe\Logger;
class NameHttpReponse extends RestReponse
{
public function put()
{
ob_start();
Dumper::dump($this->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
<?php
use MVC\Classe\Dumper;
use MVC\Classe\Implement\HttpReponse;
use MVC\Classe\Logger;
class NameHttpReponse extends HttpReponse
{
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);
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}`

50
data/blog/vues.md Normal file
View file

@ -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
<div class="container">
@yield('content')
</div>
@endsection
```
qui étends de `application/include/vues/system/system.blade.php`
```php
<html>
<head>
<title>{{$page_title}}</title>
<meta name="description" lang="fr" content="{{$description}}"/>
@section('top-css')
@endsection
</head>
<body>
@section('top-javascript')
@endsection
@yield('body')
@section('bottom-javascript')
@endsection
</body>
</html>
```