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:
parent
bcc743ea70
commit
7dd5313062
|
@ -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{
|
||||
|
|
|
@ -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
78
data/blog/action.md
Normal 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`
|
11
data/blog/comment_troller_efficacement.md
Normal file
11
data/blog/comment_troller_efficacement.md
Normal 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 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 !
|
45
data/blog/conduit.md
Normal file
45
data/blog/conduit.md
Normal 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));
|
||||
|
||||
}
|
||||
}
|
||||
```
|
54
data/blog/controleur_base.md
Normal file
54
data/blog/controleur_base.md
Normal 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...
|
82
data/blog/controleur_rest_html.md
Normal file
82
data/blog/controleur_rest_html.md
Normal 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
50
data/blog/vues.md
Normal 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>
|
||||
```
|
Loading…
Reference in a new issue