Gus06 : Framework de développement Java

Accueil Gus06 pour PHP
Gus06 est un framework Java mais il peut facilement être transposé dans le langage PHP. De plus, le fait que PHP soit un langage de script non typé rend la tâche particulièrement aisée. Il n'est même plus vraiment nécessaire de définir un framework avec du code source imposé... Pour que ça fonctionne, il faudra juste disposer d'une fonction procedurale function service($entity,$key) qui fera le lien entre le gestionnaire et les entités, et respecter les conventions de nommage des méthodes standardisées d'interaction : e, t, p, g, f (on passe de 11 caractéristiques à 5 seulement).

Cette présentation vous semblera sans doute un peu confuse si vous n'avez pas préalablement expérimenté Gus06 dans sa version Java, mais l'idée importante à retenir est que les principes s'appliquent pour le PHP, en fournissant même un résultat plus simple.

A titre d'exemple, voici ce à quoi pourra ressembler le script index.php de nos sites Web :
<?php
function module($name)
{
	if(!isset($_SESSION["module"][$name]))
	{
		$filepath = "module/".str_replace(".","/",$name)."/Module.php";
		$classpath = "module\\".str_replace(".","\\",$name)."\\Module";
		require_once($filepath);
		$_SESSION["module"][$name] = new $classpath;
	}
	return $_SESSION["module"][$name];
}

function service($entity,$key)
{
	$data = array("entity"=>$entity,"key"=>$key);
	return module("service")->t($data);
}

session_start();
$_SESSION["module"] = array();
$_SESSION["build"] = "2015.03.19";
$_SESSION["name"] = "Kassia";
module("customize")->e();
module("main")->e();
unset($_SESSION["module"]);
?>
Peut-on assimiler ce script à la méthode public static void main(String[] args) du gestionnaire Gyem ? Oui, dans une certaine mesure. L'idée est de créer un composant dont l'implémentation ne serait pas liée aux entités, à l'exception de la signature de la fonction service, une sorte de gestionnaire écrit en PHP. Et d'après le code source du script index.php, on peut déjà prédire que le reste de ce gestionnaire (nommé Kassia) se composera exclusivement de classes Module, comprenant notamment les modules main, customize et service.

Voici le code complet du gestionnaire Kassia (19/03/2015) :

Code source du gestionnaire Kassia (17,6 Ko)

Voici pour finir un exemple simple d'entité écrit en PHP :
<?php
namespace entity\gus\test\welcome;

class Entity {

	public function creationDate()
	{return "20150320";}

	public function e()
	{echo "Welcome";}
}
?>
Après, nous en sommes rendus au même point qu'avec le framework Gus06 et le gestionnaire Gyem : Nous avons les fondations, il reste à batir l'édifice.

Si vous souhaitez discuter de l'intérêt de porter le framework Gus06 en PHP ou dans d'autres langages, je vous invite à rejoindre le forum dédié à cette problématique.
Si vous souhaitez découvrir ce que peut donner un véritable site web avec cette approche, n'hésitez pas à me solliciter. Je prendrai le temps de développer un exemple complet.