diff --git a/README.md b/README.md index 50b9ded..5cb5575 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -SAND-FRAMEWORK for Modular-Applications +# SAND-FRAMEWORK for Modular-Applications + +--- +--- Cette architecture MVC Objet est composée d'un moteur de template (Blade ou Twig) @@ -6,14 +9,18 @@ Les urls d'accès sont de type www.domain.tld/le_nom_de_mapage/varname1/varvalue Afin de créer une nouvelle page vous devez instancier trois fichiers contenant diverses variables, dont voici les adresses: -application > include > controlleurs > le_nom_de_mapage.php contenant: +--- - les commandes permettant de gérer un formulaire - un ou plusieurs accès à la base de données - des variables instanciées dans le tableau $templateData permettant l'affichage dans la vue blade ou twig +`application > include > controlleurs > le_nom_de_mapage.php` contenant: + - les commandes permettant de gérer un formulaire + - un ou plusieurs accès à la base de données + - des variables instanciées dans le tableau `$templateData` permettant l'affichage dans la vue blade ou twig -application > include > modeles > le_nom_de_mapage.model contenant les variables spécifiques à la page de l'application. soit par exemple: +--- +`application > include > modeles > le_nom_de_mapage.model` contenant + les variables spécifiques à la page de l'application. soit par exemple: +``` name : le_nom_de_mapage page_title : le title du head de la page html rendue description : ma description pour les moteurs de recherche @@ -22,13 +29,19 @@ authentification : no ariane : {acceuil, test d'acceuil} arianelink : {index, le_nom_de_mapage} paramsN : paramètre(s) supplémentaire(s) +``` +avec en plus de cela : +`engine : blade` pour un layout blade ou `engine : twig` pour un layout twig -avec en plus de cela : engine : blade pour un layout blade ou engine : twig pour un layout twig +--- -application > include > vues > view > le_nom_de_mapage.blade.php contenant le layout blade a instancier application > include > vues > view > le_nom_de_mapage.html.twig contenant le layout twig a instancier +`application > include > vues > view > le_nom_de_mapage.blade.php` contenant le layout `blade` a instancier +`application > include > vues > view > le_nom_de_mapage.html.twig` contenant le layout `twig` a instancier - Vous pouvez aussi tout à fait utiliser la commande: +> Vous pouvez aussi tout à fait utiliser la commande: +> +> `php console/bin.php page:add` - php console/bin.php page:add - -Pour les modules, c'est un peu plus compliqué : il faut instancier ces trois précédents fichiers en faisant appel la class Modular, ne pas oublier de référencer le module dans le dossier modules > setup > registre.model, ajouter le dossier contenant le code du module et faire correspondre le nom du controlleur frontal du module avec le registre. +Pour les modules, c'est un peu plus compliqué : il faut instancier ces trois précédents fichiers en faisant appel la class Modular, +ne pas oublier de référencer le module dans le dossier modules > setup > registre.model, ajouter le dossier contenant le code du module +et faire correspondre le nom du controlleur frontal du module avec le registre. diff --git a/application/class/Caracter.php b/application/class/Caracter.php index 46c76e7..39a5884 100644 --- a/application/class/Caracter.php +++ b/application/class/Caracter.php @@ -87,4 +87,41 @@ class Caracter $chaine = str_replace('"', '', $chaine); return $chaine; } + public static function mettreEnMajusculeAccents($chaine, $trueAccent = false) + { + if (!$trueAccent) { + $chaine = str_replace('é', 'E', $chaine); + $chaine = str_replace('è', 'E', $chaine); + $chaine = str_replace('ë', 'E', $chaine); + $chaine = str_replace('ê', 'E', $chaine); + $chaine = str_replace('ç', 'C', $chaine); + $chaine = str_replace('Ç', 'C', $chaine); + $chaine = str_replace('à', 'A', $chaine); + // $chaine = str_replace('','&aeacute;',$chaine); + $chaine = str_replace('â', 'A', $chaine); + $chaine = str_replace('ä', 'A', $chaine); + $chaine = str_replace('î', 'I', $chaine); + $chaine = str_replace('ï', 'I', $chaine); + $chaine = str_replace('ù', 'U', $chaine); + $chaine = str_replace('û', 'U', $chaine); + $chaine = str_replace('ü', 'U', $chaine); + } else { + $chaine = str_replace('é', 'É', $chaine); + $chaine = str_replace('è', 'È', $chaine); + $chaine = str_replace('ë', 'Ë', $chaine); + $chaine = str_replace('ê', 'Ê', $chaine); + $chaine = str_replace('ç', 'Ç', $chaine); + $chaine = str_replace('Ç', 'Ç', $chaine); + $chaine = str_replace('à', 'À', $chaine); + // $chaine = str_replace('','&aeacute;',$chaine); + $chaine = str_replace('â', 'Â', $chaine); + $chaine = str_replace('ä', 'Ä', $chaine); + $chaine = str_replace('î', 'Î', $chaine); + $chaine = str_replace('ï', 'Ï', $chaine); + $chaine = str_replace('ù', 'Ù', $chaine); + $chaine = str_replace('û', 'Û', $chaine); + $chaine = str_replace('ü', 'Ü', $chaine); + } + return $chaine; + } } diff --git a/application/class/Modular.php b/application/class/Modular.php index ad67355..7ef7735 100644 --- a/application/class/Modular.php +++ b/application/class/Modular.php @@ -19,6 +19,8 @@ class Modular break; case "symfony": break; + case "laravel": + break; case "wordpress": if (isset($options[0])) { switch ($options[0]) { @@ -92,35 +94,69 @@ class Modular public function load($type = "symfony") { - ob_start(); - + global $buffer_sand; switch ($type) { case "gitlist": + ob_start(array('\\MVC\\Classe\\Modular', 'rappel'),0,PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); + $level = ob_get_level(); require MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . DIRECTORY_SEPARATOR . "index.php"; break; case "symfony": + ob_start(array('\\MVC\\Classe\\Modular', 'rappel'),0,PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); + $level = ob_get_level(); + $path = MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . DIRECTORY_SEPARATOR . "public" . DIRECTORY_SEPARATOR . "index.php"; + return require MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . DIRECTORY_SEPARATOR . "public" . DIRECTORY_SEPARATOR . "index.php"; + break; + case "laravel": + ob_start(array('\\MVC\\Classe\\Modular', 'rappel'),0,PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); + $level = ob_get_level(); require MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . DIRECTORY_SEPARATOR . "public" . DIRECTORY_SEPARATOR . "index.php"; break; case "wordpress": + ob_start(array('\\MVC\\Classe\\Modular', 'rappel'),0,PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); + $level = ob_get_level(); require MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . $this->subapp_dir . DIRECTORY_SEPARATOR . $this->subfile; break; case "prestashop": + ob_start(array('\\MVC\\Classe\\Modular', 'rappel'),0,PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); + $level = ob_get_level(); require MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . $this->subapp_dir . DIRECTORY_SEPARATOR . "index.php"; break; case "phplist": + ob_start(array('\\MVC\\Classe\\Modular', 'rappel'),0,PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); + $level = ob_get_level(); require MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . $this->subapp_dir . DIRECTORY_SEPARATOR . "index.php"; break; case "wanewsletter": + ob_start(array('\\MVC\\Classe\\Modular', 'rappel'),0,PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); + $level = ob_get_level(); require MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . $this->subapp_dir . DIRECTORY_SEPARATOR . $this->subfile; break; case "phpmynewsletter": + ob_start(array('\\MVC\\Classe\\Modular', 'rappel'),0,PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_FLUSHABLE); + $level = ob_get_level(); require MODULES_PATH . DIRECTORY_SEPARATOR . $this->getAppName() . $this->subapp_dir . DIRECTORY_SEPARATOR . $this->subfile; break; } - - $data = ob_get_contents(); - ob_end_clean(); - - return $data; + $buffer_sand = ""; + if (ob_get_level() == $level) { + if (ob_get_level() > 1) { + $buffer_sand = ob_get_contents(); + ob_end_clean(); + } else { + $buffer_sand = "BUFFER CLOSURE BY FRAMEWORK !
".$buffer_sand; + } + }else{ + $final_level = ob_get_level(); + $buffer_sand = "BUFFER LEVEL $level CLOSURE $final_level BY FRAMEWORK !
".$buffer_sand; + } + return $buffer_sand; } + public static function rappel($buffer) + { + global $buffer_sand; + $buffer_sand = $buffer; + // remplace toutes les pommes par des carottes + return $buffer; + } } diff --git a/application/class/TwigControlleurAction.php b/application/class/TwigControlleurAction.php new file mode 100644 index 0000000..e1b8162 --- /dev/null +++ b/application/class/TwigControlleurAction.php @@ -0,0 +1,84 @@ +$method(...$data); + } else { + return $slot->default(...$data); + } + } else { + /*HandleError*/ + } + } + public static function getClassMethodStatic($class, $method, $args = array()) + { + return $class::$method(...$args); + } +} \ No newline at end of file diff --git a/application/class/Vue.php b/application/class/Vue.php index 298c706..31250c9 100644 --- a/application/class/Vue.php +++ b/application/class/Vue.php @@ -60,6 +60,7 @@ class Vue switch ($engine){ case 'twig': $renderer = new \Windwalker\Renderer\TwigRenderer($paths); + $renderer->addExtension(new \MVC\Classe\TwigControlleurAction); $name .= '.html'; break; case 'blade': diff --git a/application/include/actions/DefaultAction.php b/application/include/actions/DefaultAction.php index 10b6781..74f5cda 100644 --- a/application/include/actions/DefaultAction.php +++ b/application/include/actions/DefaultAction.php @@ -1,51 +1,86 @@ render('action', array('var1' => $var1, 'var2' => $var2, 'var3' => $var3)); } - - public function variableSlug($data) + public function defaultBlade($data1,$data2,$data3) { - /**your action algorythm**/ - if (isset($data[0])) { - $var1 = $data[0]; + if (isset($data1)) { + $var1 = $data1; } else { $var1 = 1; } - if (isset($data[1])) { - $var2 = $data[1]; + if (isset($data2)) { + $var2 = $data2; } else { $var2 = 2; } - if (isset($data[2])) { - $var3 = $data[2]; + if (isset($data3)) { + $var3 = $data3; + } else { + $var3 = 3; + } + + return $this->render('action', array('var1' => $var1, 'var2' => $var2, 'var3' => $var3),'blade'); + } + public function defaultTwig($data1,$data2,$data3) + { + /**your action algorythm**/ + if (isset($data1)) { + $var1 = $data1; + } else { + $var1 = 1; + } + if (isset($data2)) { + $var2 = $data2; + } else { + $var2 = 2; + } + if (isset($data3)) { + $var3 = $data3; + } else { + $var3 = 3; + } + + return $this->render('action', array('var1' => $var1, 'var2' => $var2, 'var3' => $var3),'twig'); + } + + public function variableSlug($data1,$data2,$data3) + { + /**your action algorythm**/ + if (isset($data1)) { + $var1 = $data1; + } else { + $var1 = 1; + } + if (isset($data2)) { + $var2 = $data2; + } else { + $var2 = 2; + } + if (isset($data3)) { + $var3 = $data3; } else { $var3 = 3; } @@ -58,10 +93,10 @@ class DefaultAction extends Action $data = array('myval' => 25); //Dumper::dump($data); \MVC\Classe\Logger::addLog('action', 'http11 make request'); - $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); + $request = new \MVC\Classe\HttpMethodRequete(); + $request->setUrl(\MVC\Classe\Url::absolute_link_rewrite(false, 'accueil', ['var10'=>'val10']))->get($data); + $request->setUrl(\MVC\Classe\Url::absolute_link_rewrite(false, 'accueil', ['var10'=>'val10']))->post($data); + $request->setUrl(\MVC\Classe\Url::absolute_link_rewrite(false, 'accueil', ['var10'=>'val10']))->put($data); + $request->setUrl(\MVC\Classe\Url::absolute_link_rewrite(false, 'accueil', ['var10'=>'val10']))->delete($data); } } diff --git a/application/include/conduits/DocConduit.php b/application/include/conduits/DocConduit.php index d703dc3..a1ff56f 100644 --- a/application/include/conduits/DocConduit.php +++ b/application/include/conduits/DocConduit.php @@ -26,8 +26,8 @@ class DocConduit extends Conduit asort($files); - $this->templateData['page_title'] = 'Foo'; - $this->templateData['description'] = 'DocConduit'; + $this->templateData['page_title'] = 'Sommaire de la documentation du Framework'; + $this->templateData['description'] = 'Sommaire, Documentation, SAND, Framework'; $this->templateData['files'] = $files; return $this->render('docs', $this->templateData); @@ -37,13 +37,39 @@ class DocConduit extends Conduit public function readfile() { \MVC\Object\Session::createAndTestSession(); + + $files = array(); + + if ($handle = opendir(DATA_PATH . '/docs')) { + + while (false !== ($entry = readdir($handle))) { + + if ($entry != "." && $entry != "..") { + + $files[] = $entry; + } + } + + closedir($handle); + } + + asort($files); + + $key_file = array_search($this->file,$files); + $markdown = file_get_contents(DATA_PATH . '/docs/' . $this->file); $my_html = MarkdownExtra::defaultTransform($markdown); - $this->templateData['page_title'] = 'Foo'; - $this->templateData['description'] = 'DocConduit'; + $this->templateData['page_title'] = 'Documentation du Framework'; + $this->templateData['description'] = 'Documentation, SAND, Framework'; $this->templateData['data'] = $my_html; + if(isset($files[$key_file - 1])) { + $this->templateData['previous'] = $files[$key_file - 1]; + } + if(isset($files[$key_file + 1])) { + $this->templateData['next'] = $files[$key_file + 1]; + } return $this->render('docs', $this->templateData); diff --git a/application/include/modeles/index.model b/application/include/modeles/index.model index 28294d9..da58bfe 100644 --- a/application/include/modeles/index.model +++ b/application/include/modeles/index.model @@ -2,7 +2,7 @@ name : index page_title : Accueil de l'application description : zatou stra bracadabla -engine : blade +engine : twig authentification : yes ariane : {acceuil} diff --git a/application/include/vues/layout/body.html.twig b/application/include/vues/layout/body.html.twig index 5ccabf1..bd4304e 100644 --- a/application/include/vues/layout/body.html.twig +++ b/application/include/vues/layout/body.html.twig @@ -1,3 +1,4 @@ +{% extends "system.html.twig" %} {% block body %} @@ -7,11 +8,12 @@ style="background: rgba(0, 0, 0, 0.59);">
@@ -38,8 +40,8 @@ @@ -52,24 +54,43 @@
- Vous êtes connecté en tant que {{$_SESSION['user_login']}} - Se Deconnecter + Vous êtes connecté en tant que {{session('user_login')}} + Se Deconnecter
+ + {%if ariane is defined %} + + {% endif %}
- {% if $_SESSION['alerts'] is defined %} - {% foreach $_SESSION['alerts'] as alert %} + {% if not session('alerts') == null %} + {% for alert in session('alerts') %} - {% endforeach %} + {% endfor %} {% endif %} + {% block content %}{% endblock %}
@@ -84,7 +105,7 @@

- +

@@ -116,4 +137,4 @@ -{% endblock %}} +{% endblock %} diff --git a/application/include/vues/system/base.html.twig b/application/include/vues/system/system.html.twig similarity index 81% rename from application/include/vues/system/base.html.twig rename to application/include/vues/system/system.html.twig index 3e5642c..52c11a4 100644 --- a/application/include/vues/system/base.html.twig +++ b/application/include/vues/system/system.html.twig @@ -27,29 +27,29 @@ - {% block top-css %} - - + {% block topCss %} + + {% endblock %} {% endblock %} -{% block top-javascript %}{% endblock %} +{% block topJavascript %}{% endblock %} {% block body %}{% endblock %} -{% block bottom-javascript %} - - +{% block bottomJavascript %} + + -/* +{# SCRIPT JS permettant de ne valider qu'une seule fois un formulaire ATTENTION tous les formulaires sont affecté Lors d'une validation bootstrap personnalisé veuillez utilisé la class do-resubmit sur le formulaire afin de permettre l'activation supplémentaire du bouton. -*/ +#} + + +{# +SCRIPT JS permettant de ne valider qu'une seule fois un formulaire +ATTENTION tous les formulaires sont affecté +Lors d'une validation bootstrap personnalisé veuillez utilisé +la class do-resubmit sur le formulaire afin de permettre +l'activation supplémentaire du bouton. +#} + +{% endblock %} + + ``` \ No newline at end of file diff --git a/data/docs/04.b. Les vues Blade.md b/data/docs/04.b. Les vues Blade.md index 31b602e..cc03da8 100644 --- a/data/docs/04.b. Les vues Blade.md +++ b/data/docs/04.b. Les vues Blade.md @@ -8,43 +8,250 @@ Elles sont chargées dans cette ordre: 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') -
- +@extends('system') + +@section('body') + +
+ +
+
+ +
+
+ + + + + + @if(isset($authentification) && $authentification == 'yes') +
+
+ Vous êtes connecté en tant que {{$_SESSION['user_login']}} + Se Deconnecter +
+
+ @endif + + + + @if (isset($ariane)) + + @endif + + +
+
+ + + @if(isset($_SESSION['alerts'])) + @foreach($_SESSION['alerts'] as $alert) + + @endforeach + @endif + + @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 - - - + + + + + {{$page_title}} + + + + + + + + + + + + + + + + + + + + + + + + + @section('top-css') + + + @if(\MVC\Classe\Browser::get() == 'Internet Explorer') + + + @endif + @show + + + + + +@section('top-javascript') + @if(\MVC\Classe\Browser::get() == 'Internet Explorer') + + + + + + + + @endif +@show + +@yield('body') + +@section('bottom-javascript') + + + + @if(\MVC\Classe\Browser::get() !== 'Internet Explorer') + + @endif +@show + + + ``` \ No newline at end of file diff --git a/data/docs/04.c. Les vues Blade avec SPA(vuejs).md b/data/docs/04.c. Les vues Blade avec SPA(vuejs).md index 71dcec5..34697e4 100644 --- a/data/docs/04.c. Les vues Blade avec SPA(vuejs).md +++ b/data/docs/04.c. Les vues Blade avec SPA(vuejs).md @@ -6,4 +6,83 @@ Elles sont chargées dans le même ordre que les vues Blade normale: * application/include/vues/layout * application/include/vues/view -Cependant il faut inclure les biblitohèques Vue.js dans la page et coder à la mimine la SPA \ No newline at end of file +Cependant il faut inclure les biblitohèques Vue.js dans la page et coder à la mimine la SPA +par exemple: + +```php +@section('top-javascript') + @parent + + +@endsection + +@section('content') +

%PAGE% - VUE.js Controlleur

+


+
+
+ +
+
+ +
+
+

+ @{{ item.title }} +

+
+
+
+

+ @{{ item.description.slice(0, 300) + "..." }} +

+
+
+ Year : @{{ item.release_date }} + Director : @{{ item.director }} + Producer : @{{ item.producer }} +
+
+
+ +
+@endsection + +@section('bottom-javascript') + @parent + +@endsection +``` \ No newline at end of file diff --git a/data/docs/05. Les Actions dans les vues.md b/data/docs/05. Les Actions dans les vues.md index d0b8cd2..3ec6902 100644 --- a/data/docs/05. Les Actions dans les vues.md +++ b/data/docs/05. Les Actions dans les vues.md @@ -53,14 +53,17 @@ class DefaultAction extends Action } ``` -avec cet accès dans la vue: +avec cet accès dans une vue blade: ```php -{{\MVC\Classe\ControlleurAction::inserer('default',[])}} {{\MVC\Classe\ControlleurAction::inserer('default.default',[4,5,6])}} -{{\MVC\Classe\ControlleurAction::inserer('default.variableSlug',['var1','var2'])}} - {{\MVC\Classe\ControlleurAction::inserer('default.makeHttp11',[])}} ``` +ou avec cet accès dans une vue twig: +```php +{{ action('default.defaultTwig',[4,5,6]) }} +{{ action('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/docs/06. Le conduit Symfony.md b/data/docs/06. Le conduit Symfony.md index f4db58c..abd5c27 100644 --- a/data/docs/06. Le conduit Symfony.md +++ b/data/docs/06. Le conduit Symfony.md @@ -5,6 +5,8 @@ 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. +Elle est utlie aussi pour créer des appels Curl et Ajax. + 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 @@ -48,3 +50,4 @@ class FooConduit extends Conduit } } ``` +Vous remarquerez que les variables passé en GET sont obtenu dans le conduit par `$this->varname`. \ No newline at end of file diff --git a/data/docs/07.a. modules - configuration.md b/data/docs/07.a. modules - configuration.md index 1a06eb0..8dfa5db 100644 --- a/data/docs/07.a. modules - configuration.md +++ b/data/docs/07.a. modules - configuration.md @@ -1,29 +1,37 @@ -#Comment Configurer un module Symfony ou tout autre application php +#Comment Configurer un module ou tout autre application php il vous faut instancier trois fichiers: + le modèle (.model) contenant le nom de la page qui porte le model -ici : `application/include/modeles/syf51.model` +ici : `application/include/modeles/my_module.model` ```yaml -name : syf51 +name : my_module page_title : Accueil de l'application modulaire description : zatou stra bracadabla -params : params +engine : blade +ariane : {my_module_name} +arianelink : {my_module} ``` -le controlleur (.php) contenant ce code qui doit être automatisé -ici: `application/include/controlleurs/syf51.php` +le controlleur (.php) contenant ce code +ici: `application/include/controlleurs/my_module.php` ```php $app); ``` -et déclarer le module dans `\application\modules\setup\registre.model` +le template (.blade.php) contenant ce code +ici: `application/include/vues/view/my_module.php` +```php +{{$app->load('module_type')}} +``` +aussi il vous faudra déclarer le module dans `\application\modules\setup\registre.model` par une ligne suplémentaire: ```yaml -syf51 : Application permettant de tester l'intégration d'un module avec symfony5.0.99 +my_module : Application permettant de tester l'intégration d'un module ``` -si besoin et que le module n'existe pas il vous faudras coder et modifier -le fichier `/application/class/Modular.php` voir peut-être `/application/class/ModularRegister.php` +ainsi que le dossier `\application\module\my_module` + +si besoin et que le type du module n'existe pas il vous faudra ajouter le type du module en modifiant le fichier `/application/class/Modular.php` et les méthodes `__construct` et `load` Good Luck ! \ No newline at end of file diff --git a/data/docs/07.b. modules - comment bien les utiliser.md b/data/docs/07.b. modules - comment bien les utiliser.md index 23e9e73..5b3934f 100644 --- a/data/docs/07.b. modules - comment bien les utiliser.md +++ b/data/docs/07.b. modules - comment bien les utiliser.md @@ -1 +1,10 @@ -#Comment bien utiliser les modules \ No newline at end of file +#Comment bien utiliser les modules + +Simplement vous pouvez tester les intégrations prévues dans le FrameWork avec la commande `php bin.php module:add` ainsi vous aurez le choix d'intégrer en quelques modifications à la mimine un module Symfony ou Laravel. Pour cela choisissez les paramètres de base afin que l'installation se passe bien. + +Il faut comprendre qu'un module Symfony ne peut fonctionner qu'avec un template `blade`, de même manière un module Laravel ne peut fonctionner qu'avec un template `twig`. +Basiquement toute application utilisant le système de randu `twig` doit être intégré avec un template-sand `blade` et l'inverse. + +Au niveau du sysème de routage, il faut absolument inclure le path du module, par exemple pour un module nommé 'SciFi', il faudra inclure dans les routes des controlleurs la chaine de caractères `\SciFi` devant toutes les routes de vos controlleurs. + +Il en est de même pour les autres modules : Wordpress, GitList, PhpList, Pretashop, ... ainsi que pour tous les autres modules que vous voudriez intégrer par vous-même. \ No newline at end of file diff --git a/data/docs/13. modules - Laravel.md b/data/docs/13. modules - Laravel.md new file mode 100644 index 0000000..6edc24e --- /dev/null +++ b/data/docs/13. modules - Laravel.md @@ -0,0 +1 @@ +#Comment ajouter un module Symfony \ No newline at end of file diff --git a/data/docs/13. Comment faire des appels récursifs en curl sur une API RESTFULL codée avec le framework.md b/data/docs/19. Comment faire des appels récursifs en curl sur une API RESTFULL codée avec le framework.md similarity index 100% rename from data/docs/13. Comment faire des appels récursifs en curl sur une API RESTFULL codée avec le framework.md rename to data/docs/19. Comment faire des appels récursifs en curl sur une API RESTFULL codée avec le framework.md diff --git a/switch2LaravelModule.sh b/switch2LaravelModule.sh new file mode 100644 index 0000000..571bc0d --- /dev/null +++ b/switch2LaravelModule.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +composer remove illuminate/view +composer require twig/twig 1.* diff --git a/switch2SymfonyModule.sh b/switch2SymfonyModule.sh new file mode 100644 index 0000000..63b2f9b --- /dev/null +++ b/switch2SymfonyModule.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +composer require illuminate/view 4.* +composer remove twig/twig diff --git a/tests/phpunit/tests/StrToUpperTest.php b/tests/phpunit/tests/StrToUpperTest.php new file mode 100644 index 0000000..f7256ef --- /dev/null +++ b/tests/phpunit/tests/StrToUpperTest.php @@ -0,0 +1,41 @@ +assertEquals($string_value_upper[$i], $string_upper[$i]); + } + } +}