Skip to content
This repository has been archived by the owner on Jun 17, 2020. It is now read-only.

5. Documentation du Robert : DÉVELOPPEMENT

Paul MAILLARDET edited this page Nov 30, 2017 · 2 revisions

1. Versionning, dépôt GIT et GitHub

Le code source de Robert utilise le logiciel de versionning "Git". Vous pouvez créer un clone du dépôt grâce à la commande :

git clone git://github.com/RobertManager/robert.git

Ou bien, si vous avez un compte gitHub, grâce au bouton "Fork" (en haut de page), vous pourrez cloner le dépôt gitHub sur votre propre compte gitHub.
Lorsque vous avez modifié le code source, pour ajouter une fonctionnalité ou corriger un bug, vous pouvez faire une "Pull Request". Ceci nous préviendra qu'une nouvelle version de Robert est disponible, afin que nous puissions fusionner votre version à la version officielle (faire un "merge").

2. Règles de base de présentation du code

Ceci peut paraître trivial, mais il est important pour la lisibilité du code que l'on soit tous sur la même longueur d'onde en ce qui concerne la présentation...

Pour cela, le fichier .editorconfig se trouvant à la racine du projet vous permettra de configurer automatiquement votre IDE.

  • Inspirez-vous du code existant pour la présentation.
  • indentation : merci d'indenter correctement votre code, avec 4 espaces.
  • nom des variables : en "lower camelcase" (la première lettre doit être en minuscule). Merci d'utiliser des noms de variables compréhensibles, qui ont un rapport avec leurs valeurs.
    Ex : $nomDeLaVar
  • accolades exemple :
if ($var === 'string') {  
    do something  
} else {  
    do something else  
}

3. La structure du Robert expliquée

Présentation de la structure des dossiers

/BFLogs : Journaux des connexions à Robert
/classes : Les classes PHP
/config : Les identifiants pour accéder à la BDD et les infos de votre structure
/css : Le style CSS ;)
/debug : Interfaces pour tester certaines classes.
/fct : Les fichiers PHP et JS des fonctions (actions) Ajax
/font : Polices perso
/gfx : Les graphismes
/inc : Classes d'initialisation (chemins par défaut / autoload / header HTML / initalisation de PDO)
/js : Bibliothèques JS (vendors) (par ex. JQuery ou l'upload de fichiers)
/modals : Les vues destinées aux fenêtres modales ou bien des sous-sections de pages
/pages : Les vues des pages principales de Robert

Le système des "pages" Ajax

Dans le dossier /fct/, vous trouverez les fonctions correspondantes à des "actions" Ajax.
Chaque module comprend au moins un fichier *_actions.php et *_Ajax.js.
Par exemple, les fichiers en rapport avec la section 'matos' du site seront :

matos_Ajax.js => Traitement des formulaires, gestion des éléments de l'interface, appels Ajax au fichier php

matos_actions.php => Récupération des données et appel des traitements, retourne le statut du résultat en JSON à la page appelante

matos_tri_sousCat.php => Des fonctions supplémentaires, uniquement pour gérer les sous catégories de matériel. Ces fonctions sont donc rassemblées dans un fichier extérieur à matos_actions.php

structure php ajax bdd

Structure des données & Base de Données

TODO

Détails concernant...

Les fichiers initInclude.php : TODO

4. Liste des classes

  • Calendar.class.php
  • Connecting.class.php
  • Devis.class.php
  • FPDF.class.php
  • Infos.class.php
  • Interlocuteur.class.php
  • Liste.class.php
  • Matos.class.php
  • PDF_Devisfacture.class.php
  • Pack.class.php
  • Plan.class.php
  • SortiePDF.class.php
  • Structure.class.php
  • Tekos.class.php
  • Users.class.php