- ajout de l'action twig avec la page d'acceuil sous twig
 - ajout du chargement de modules symfony et laravel, fonctionne partiellement, pas d'inclusion du head et du footer du template body
 - modification des commandes et des skel pour l'installation automatique des modules symfony et laravel
This commit is contained in:
Emmanuel ROY 2021-07-12 11:14:36 +02:00
parent e55358c819
commit df0aeb1b80
14 changed files with 185 additions and 47 deletions

View file

@ -1,51 +1,86 @@
<?php
use MVC\Classe\Dumper;
use MVC\Classe\HttpMethodRequete;
use MVC\Classe\Implement\Action;
use MVC\Classe\Url;
use MVC\Classe\Response;
class DefaultAction extends Action
class DefaultAction extends \MVC\Classe\Implement\Action
{
public function default()
{
/**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));
}
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);
}
}

View file

@ -0,0 +1 @@
{{var1}}::{{var2}}::{{var3}}

View file

@ -14,7 +14,7 @@
{{$templating_a}}::{{$templating_b}}::{{$templating_c}}
{{\MVC\Classe\ControlleurAction::inserer('default',[])}}
{{\MVC\Classe\ControlleurAction::inserer('default.default',[4,5,6])}}
{{\MVC\Classe\ControlleurAction::inserer('default.defaultBlade',[4,5,6])}}
{{\MVC\Classe\ControlleurAction::inserer('default.variableSlug',['var1','var2','var3'])}}
@endsection

View file

@ -6,5 +6,5 @@
<br /><br /><br />
<hr/>
{{templating_a}}::{{templating_b}}::{{templating_c}}
{{ action('default.default',[4,5,6]) }}
{{ action('default.defaultTwig',[4,5,6]) }}
{% endblock %}

View file

@ -22,16 +22,30 @@ class Module
public static function add()
{
print "adding module...\n\n";
print "Quel est le module a ajouter ?\n1.Symfony\n2.Wordpress\n3.Prestashop\n4.PhpList\n5.Wanewsletter\n6.PHPmyNewletter\n>";
print "Quel est le module a ajouter ?\n0.Laravel\n1.Symfony\n2.Wordpress\n3.Prestashop\n4.PhpList\n5.Wanewsletter\n6.PHPmyNewletter\n>";
$module = trim(fgets(STDIN));
switch ($module) {
case 0:
print "Quel est le nom du module laravel à ajouter (default : laravel) ? ";
$name = trim(fgets(STDIN));
if ($name !== '' && preg_match('#(.)+#', $name)) {
Module::addLaravel($name);
} else {
Module::addLaravel('symfony');
}
break;
case 1:
print "Quel est le nom du module symfony à ajouter (default : symfony) ? ";
$name = trim(fgets(STDIN));
print "Quel est la version de Symfony à ajouter (default : 4.4) ? ";
$version = trim(fgets(STDIN));
if ($version == '' && !preg_match('#(.)\.(.)\.(.)\.(.)#', $version)) {
$version = "4.4";
}
if ($name !== '' && preg_match('#(.)+#', $name)) {
Module::addSymfony($name);
Module::addSymfony($name,$version);
} else {
Module::addSymfony('symfony');
Module::addSymfony('symfony',$version);
}
break;
case 2:
@ -117,33 +131,86 @@ class Module
}
}
private static function addSymfony($name = 'symfony')
private static function addLaravel($name = 'laravel')
{
$git_clone = shell_exec('cd '.MODULES_PATH.' && composer create-project symfony/website-skeleton '.$name);
$git_clone = shell_exec('cd '.MODULES_PATH.' && composer create-project laravel/laravel '.$name);
print $git_clone;
$git_chmod = shell_exec('sudo chmod 775 '.MODULES_PATH.'/'.$name.' -R');
$git_chmod = shell_exec('chmod 775 '.MODULES_PATH.'/'.$name.' -R');
print $git_chmod;
$git_chown = shell_exec('sudo chown acksop:www-data '.MODULES_PATH.'/'.$name.' -R');
$git_chown = shell_exec('chown acksop:www-data '.MODULES_PATH.'/'.$name.' -R');
print $git_chown;
$git_controlleur = shell_exec('cp '.CONSOLE_PATH.'/skel/module_symfony.php '.CONTROLLERS_PATH.'/'.$name.'.php');
$git_controlleur = shell_exec('cp '.CONSOLE_PATH.'/skel/module.laravel.php '.CONTROLLERS_PATH.'/'.$name.'.php');
$controlleur = file_get_contents(CONTROLLERS_PATH.'/'.$name.'.php');
$controlleur = preg_replace('%MODULE%', $name, $controlleur);
$controlleur = preg_replace('/%%MODULE_NAME%%/', $name, $controlleur);
$controlleur = preg_replace('/%%MODULE%%/', 'laravel', $controlleur);
file_put_contents(CONTROLLERS_PATH.'/'.$name.'.php', $controlleur);
print $git_controlleur;
$git_modele = shell_exec('cp '.CONSOLE_PATH.'/skel/module.model '.MODELS_PATH.'/'.$name.'.model');
$git_modele = shell_exec('cp '.CONSOLE_PATH.'/skel/module.laravel.model '.MODELS_PATH.'/'.$name.'.model');
$modele = file_get_contents(MODELS_PATH.'/'.$name.'.model');
$modele = preg_replace('%MODULE%', $name, $modele);
$modele = preg_replace('/%%MODULE_NAME%%/', $name, $modele);
$modele = preg_replace('/%%MODULE%%/', 'laravel', $modele);
file_put_contents(MODELS_PATH.'/'.$name.'.model', $modele);
print $git_modele;
$git_view = shell_exec('cp '.CONSOLE_PATH.'/skel/module.blade.php '.VIEW_PATH.'/view/'.$name.'.blade.php');
$git_view = shell_exec('cp '.CONSOLE_PATH.'/skel/module.laravel.html.twig '.VIEW_PATH.'/view/'.$name.'.blade.php');
$vue = file_get_contents(VIEW_PATH.'/view/'.$name.'.html.twig');
$vue = preg_replace('/%%MODULE_NAME%%/', $name, $vue);
$vue = preg_replace('/%%MODULE%%/', 'laravel', $vue);
file_put_contents(VIEW_PATH.'/view/'.$name.'.html.twig', $vue);
print $git_view;
//stabilize symfony application
//print "stabilize symfony module...\n\n";
//$symfony_module = shell_exec('cp '.CONSOLE_PATH.'/skel/symfony-app/* '.MODULES_PATH.'/'.$name.' -Rf');
//$symfony_composer = shell_exec('cd '.MODULES_PATH.'/'.$name.' && composer update');
print "\n\nN'oubliez pas d'ajouter au fichier '/application/modules/setup/registre.model' :"
."\n'.$name.' : Application permettant d'intégrer un module avec symfony"
."\n "
."\n et de créer la base de données!\n";
}
public static function removeLaravel($name = 'laravel')
{
$git_clone = system('rm -Rf '.MODULES_PATH.'/'.$name, $git_clone_retval);
print $git_clone_retval;
$git_controlleur = system('rm -f '.CONTROLLERS_PATH.'/'.$name.'.php', $git_controlleur_retval);
print $git_controlleur_retval;
$git_modele = system('rm -f '.MODELS_PATH.'/'.$name.'.model', $git_modele_retval);
print $git_modele_retval;
$git_view = system('rm -f '.VIEW_PATH.'/view/'.$name.'.html.twig', $git_view_retval);
print $git_view_retval;
}
private static function addSymfony($name = 'symfony',$version="4.4")
{
$git_clone = shell_exec('cd '.MODULES_PATH.' && composer create-project symfony/website-skeleton:"^'.$version.'" '.$name);
print $git_clone;
$git_chmod = shell_exec('chmod 775 '.MODULES_PATH.'/'.$name.' -R');
print $git_chmod;
$git_chown = shell_exec('chown acksop:www-data '.MODULES_PATH.'/'.$name.' -R');
print $git_chown;
$git_controlleur = shell_exec('cp '.CONSOLE_PATH.'/skel/module.symfony.php '.CONTROLLERS_PATH.'/'.$name.'.php');
$controlleur = file_get_contents(CONTROLLERS_PATH.'/'.$name.'.php');
$controlleur = preg_replace('/%%MODULE_NAME%%/', $name, $controlleur);
$controlleur = preg_replace('/%%MODULE%%/', 'symfony', $controlleur);
file_put_contents(CONTROLLERS_PATH.'/'.$name.'.php', $controlleur);
print $git_controlleur;
$git_modele = shell_exec('cp '.CONSOLE_PATH.'/skel/module.symfony.model '.MODELS_PATH.'/'.$name.'.model');
$modele = file_get_contents(MODELS_PATH.'/'.$name.'.model');
$modele = preg_replace('/%%MODULE_NAME%%/', $name, $modele);
$modele = preg_replace('/%%MODULE%%/', 'symfony', $modele);
file_put_contents(MODELS_PATH.'/'.$name.'.model', $modele);
print $git_modele;
$git_view = shell_exec('cp '.CONSOLE_PATH.'/skel/module.symfony.blade.php '.VIEW_PATH.'/view/'.$name.'.blade.php');
$vue = file_get_contents(VIEW_PATH.'/view/'.$name.'.blade.php');
$vue = preg_replace('%MODULE%', 'symfony', $vue);
$vue = preg_replace('/%%MODULE_NAME%%/', $name, $vue);
$vue = preg_replace('/%%MODULE%%/', 'symfony', $vue);
file_put_contents(VIEW_PATH.'/view/'.$name.'.blade.php', $vue);
print $git_view;
//stabilize symfony application
include dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Symfony.php';
$symfony_composer = shell_exec('cd '.MODULES_PATH.'/'.$name.' && composer update');
//print "stabilize symfony module...\n\n";
//$symfony_module = shell_exec('cp '.CONSOLE_PATH.'/skel/symfony-app/* '.MODULES_PATH.'/'.$name.' -Rf');
//$symfony_composer = shell_exec('cd '.MODULES_PATH.'/'.$name.' && composer update');
print "\n\nN'oubliez pas d'ajouter au fichier '/application/modules/setup/registre.model' :"
."\n'.$name.' : Application permettant d'intégrer un module avec symfony"

View file

@ -0,0 +1 @@
{{ subcall( app, 'load', ['%%MODULE%%'] ) | raw }}

View file

@ -0,0 +1,7 @@
{% extends "body.html.twig" %}
{% block content %}
{{ subcall( app, 'load', ['%%MODULE%%'] ) | raw }}
{% endblock %}

View file

@ -0,0 +1,8 @@
name : %%MODULE_NAME%%
page_title : module_title
description : module_description
engine : twig
authentification : no
ariane : {%%MODULE%%}
arianelink : {%%MODULE_NAME%%}

View file

@ -0,0 +1,3 @@
<?php
$app = new MVC\Classe\Modular($name, '%%MODULE%%', $url_params);
$templateData = array('app' => $app);

View file

@ -1,6 +1,6 @@
name : %%MODULE%%
name : %%MODULE_NAME%%
page_title : module_title
description : module_description
ariane : {%%MODULE%%}
arianelink : {%%MODULE%%}
arianelink : {%%MODULE_NAME%%}

View file

@ -0,0 +1,5 @@
@extends('body')
@section('content')
{{$app->load('%%MODULE%%')}}
@endsection

View file

@ -0,0 +1,8 @@
name : %%MODULE_NAME%%
page_title : module_title
description : module_description
engine : blade
authentification : no
ariane : {%%MODULE%%}
arianelink : {%%MODULE_NAME%%}

View file

@ -0,0 +1,3 @@
<?php
$app = new MVC\Classe\Modular($name, '%%MODULE%%', $url_params);
$templateData = array('app' => $app);

View file

@ -1,4 +1,4 @@
{% extends "base.html" %}
{% extends "body.html.twig" %}
{% block top-css %}
{{ parent() }}