Git Product home page Git Product logo

acksop / sand-framework Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 56.77 MB

Framework Multi-Modules MVC (Vues : Twig ou Blade, et possible SPA [SinglePageApplication] Vue.js ou React.js ...) en PHP

Home Page: https://sand-framework.app

PHP 43.64% Blade 1.17% Twig 0.84% Hack 0.01% CSS 10.13% JavaScript 3.32% Shell 0.04% Gherkin 0.02% HTML 38.65% Makefile 0.01% Less 2.19%
framework meta-framework modular-framework

sand-framework's Introduction

SAND-FRAMEWORK for Modular-Applications


1. 🎢 Do you want to know more ?


↗️ A quelle utilisation se destine le framework SAND ?

Voici quelques exemples de projets pour lesquels SAND a été ou pourrait être utilisé :

  • Un site comprenant une documentation interne en MARKDOWN et un depot git privé (https://code-source.sand-framework.app)
  • Un outil full console pour partager les accès entre un LDAP et une grosse application de droits et de paiement de salariés
  • Une application permettant de communiquer avec un LDAP pour une gestion des droits de personnels exterieurs à une université comprenant logs et multiples droits accès
  • Une application web de newsletter avec envoi en mode console par tache CRON
  • Une application web de curriculum vitae
  • Une application web de créations de pages dynamiques
  • Une application web comprenant un wordpress, un phplist et un site reliés sur le même domaine
  • Une application comprennant un ou plusieurs module symfony avec gestion des droits d'accès par SAND
  • Une applications comprennant un ou plusieurs module laravel avec gestion des droits d'accès par SAND
  • Une application REST comprennant des appels dynamique injectés en curl

💪 Les points forts du projet SAND-framework dans sa version actuelle

Domain And Test(PHPUnit-Behat) Driven Development.

A building metrics toujours disponible

Plusieurs modules déjà disponible (Worpress, PHPList, Gitlist, ...)

Possibilité de créer des modules SAND pour un Projet SAND (plusieurs modules SAND-view-symfony pour un projet SAND-blade, par exemple)

Un système d'authentification fonctionnellement testé avec des authenfication hybrides (Github, Google, Facebook, ...) et CAS

Des commandes consoles faciles à mettre en place pour les applications nécessitant de la maintenance journalière automatisée

👌 Trouvez-vous que ce projet soit assez mature ?

N'hésitez pas à commenter dans les discussions.


Cette architecture MVC Objet est composée d'un moteur de template (Blade ou Twig) provenant d'un projet de Simon Asika (Ventoviro) -> https://github.com/windwalker-io/renderer.git

Les urls d'accès basiques sont de type www.domain.tld/le_nom_de_mapage/varname1/varvalue1/varname2/varvalue2/ ...

Avant toute chose après le clonage de cette branche et avant le lancement du docker, vous executerez les commandes suivantes:

composer  update
git submodule init
git submodule update

cela permettra de stabiliser les ressources publiques tierces, pour que tout fonctionne bien.


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 > 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 : la description pour les moteurs de recherche
engine : none | blade | twig
authentification : no | yes
ariane : {acceuil, test d'acceuil}
arianelink : {index, le_nom_de_mapage}
paramsN : tout(s) paramètre(s) supplémentaire(s)

avec en plus de cela : engine : blade pour un layout blade ou engine : twig pour un layout twig. Dans le cas où l'engine est a none alors vous pouvez tout à fait afficher la page directement dans le controlleur, seulement il vous faudra réaliser à la main le template l'affichant en recréant un systeme de chargement complet.


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:

php console/bin.php page:add

Pour les modules, c'est beaucoup 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.

Mais bon, vous pouvez aussi tout à fait utiliser la commande:

php console/bin.php module:add

🙏 Montrez votre support

N'hésitez pas à mettre une ⭐ si ce projet vous a aidé.

❤️ Contributeurs

D'avance, merci aux futurs formidables contributeurs, et s'il veulent se manifester : je suis tout ouïe

Ce projet suit la spécification all-contributors. Les contributions de tout type sont les bienvenues !

This project follows the all-contributors specification. Contributions of any kind are welcome!

sand-framework's People

Contributors

acksop avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.