@tlex

Développeurs

@tlex 09/04/2019

Présentation de FractalFramework

Conscient de l'importance la pérennité et de l'indépendance des systèmes d'information, nous avons conçu ce framework open source autour d'un moteur Ajax qui est à la limite du low-tech, très simple et astucieux, demandant peu de ressources et donc avec un temps d'exécution très rapide.

Le framework permet de composer n'importe quelle application web en peu de temps, et propos de redistribuer les "Apps" créées par les utilisateurs.

Totalement indépendant de Symfony, react, angular, mais capable d'en simuler les principaux attraits en terme de productivité, notamment avec son moteur de création de bases de données, son moteur de templates (les connecteurs) qui permet de confier au public la mise en forme et un minimum d'activité de programmation, et son architecture "une page = une App" permettant d'y loger les activités spécifiques javascript et css en plus de PHP.

Son architecture est simplifiée au maximum de sorte à être prise en main facilement et en fait un logiciel agréable à manier. Il est muni d'un dispositif de dev et de mise en production, et par défaut d'une gestion de toutes les nominations et des aides en ligne de façon multilingue.

C'est vraiment très important de rechercher l'indépendance logicielle, ne serait-ce que pour en maîtriser et comprendre les processus, pour que ça serve à l'éducation autrement qu'en apprenant de la bureautique, et ne pas s'inscrire dans un schéma (devenu classique) de complexification non désirée qui requiert l'intervention de "spécialistes" (qui eux-mêmes sont en obsolescence programmée quand les technos changent).

Il est devenu vital d'implanter ces systèmes low-tech multi-usages dans des lieux où il est nécessaire de contribuer à la culture logicielle, qui est une véritable promesse de libération des peuples.

***

Développement d'une nouvelle App

Le logiciel est libre et open source : vous pouvez le modifier et en particulier y ajouter des Apps, basées sur le Framework (qui rappelle un peu à Symfony, sans avoir à affronter sa complexité).

Pour plus d'info sur le Framework, familiarisez-vous avec les Apps du répertoire /pub/.

Le première chose à savoir qui va vous faire gagner du temps, c'est que toutes les méthodes n'ont qu'un paramètre, $p, ce qui leur permet d'être appelées "de l'extérieur" (depuis le moteur Ajax).

La deuxième chose cruciale, c'est qu'on a mit en mode composant toutes les fonctions du code métier, sur deux pages, lib et core, à la racine. Et la plus utilisée des fonctions est aj(), qui permet de faire n'importe quel appel Ajax. Ensuite il y a plusieurs déclinaisons et spécialisations de aj().

La troisième chose à savoir importante, c'est la structure. Le répertoire "prog" est celui de la dev. Il contient un répertoire "/apps", qui contient toutes les Apps publiques. Trois autres sont spéciaux, "/core" qui contient les dispositifs communs, "/admin" qui contient des éléments réserves au gestionnaire du serveur, et "/com" contient des utilitaires qui sont des micro-apps sans bases de données.

Étapes de la création d'une App :

1. Création du fichier : décliner une App depuis le fichier model.php : chercher-remplacer 'model' par le nom de l'App, et le renommer le fichier comme tel. La version "model2.php" institue une gestion sur deux tables, la deuxième pouvant servir à complexifier l'App (en créant par exemple des chapitres, etc...) ou encore à collecter des données utilisateur.

Utilisez un nom court et clair. Les variables de la classe permettent différentes configurations, par comme d'associer une deuxième table à la première, ou de choisir si l'App doit s'ouvrir directement ou via une preview. La première chose à faire avec votre nouvelle idée d'App, est de créer les colonnes de la table Mysql. Désignez simplement leur nom et leur type (int, var, text, date). Gardez toujours sous la main lib.php et core.php qui fournit de nombreuses briques métier. Regardez dans model.php les usages spécifiques réservés à certaines colonnes.

2. Au premier lancement, les tables Mysql et des références sont automatiquement créées.

- dans /admin_icons : définir l'icône pour cette App

- dans /admin_lang : donner un nom à l'App pour chaque langues

- dans /admin_helps : donner une description rapide pour chaque langues

3. Editer le code. La nouvelle classe peut être une extension de Appx (extends appx). Les fonctions présentes dans model.php sont des interfaces de Appx. Il est toujours possible de décliner d'autres fonctions de Appx que celles de l'interface.

- éditer les fonctions com() et call() (respectivement édition et lecture).

- deux moteurs de templates (Vue et Phylo) permettent d'assembler les données produites dans play().

- ajouter l'App dans dans le répertoire app/public du Desktop pour qu'elle apparaisse dans le menu des Apps publiques.

L'App peut s'ouvrir :

- directement via l'url /model (ou avec un param : /model/1)

- dans un message via un connecteur [1]

- dans l'interface de Tlex, au moment de l'édition d'un nouvel objet

- depuis une autre App, via app('model');

Notes de Dev

Télécharger la dernière version de Fractal Framework