Skip to content

Elipce-Informatique/parking

Repository files navigation

Elipce Workflow

Nouveau WorkFlow pour les développements web d'Elipce.

  • Basé sur Laravel côté serveur, on va utiliser Gulp comme task runner et une architecture RESTFUL
  • Flux et React comme Frontend engineering lib Puis jQuery et Bootstrap comme utilitaires.

INIT de l'environnement de développement

  • Si les commandes composer et npm ne sont pas reconues, il faut sans doute ajouter leur chemin dans le path local
  • Les commandes en consoles sont à lancer depuis un powershell de préférence
  • Il est fortement conseillé d'installer Cmder pour avoir un meilleur shell sous Windows : http://bliker.github.io/cmder/

Environnement de dev backend

  • Installation de composer (https://getcomposer.org/download/)
  • Ajout du dossier C:\Users\*********\AppData\Roaming\Composer\vendor\bin au path
  • Installation de Laravel en global
  • Clonner le projet github dans un dossier local (typiquement dans le dossier www de easyphp)
  • Installation des dépendences Laravel en ligne de commande (se placer dans le dossier du projet) : composer update
  • les langues sont définies dans des fichiers par thèmes (app/lang/fr)
    • Pour les utiliser en JS il faut les déclarer dans la config package/andywer/js-localization
    • Pour les appeller en JS on fait Lang.get('fichier.constante');
  • Les logs sont enregistrés dans le dossier app/storage/logs les fichiers sont générés en fonction du jour et du niveau de log (DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY). Les logs sont remontés en bulle: Le fichier DEBUG contient tout, le fichier INFO contient tout sauf DEBUG, le fichier NOTICE contient tout sauf INFO et DEBUG etc...

Environnement de dev Front End

  • Installation de node js : http://nodejs.org/
    • Si la commande npm affiche une erreur "ENOENT" dans powershell, il faut créer un dossier npm vide dans %appdata%/Roaming
  • Installation de Gulp en global nmp install --global gulp
  • Installation de Browserify en global npm install -g browserify
  • Installation des dépendences nodes depuis le package.json lancer la commande : npm update depuis la racine du projet

Conventions de développement

PHP

  • Utilisation des routes de type 'resource' au MAXIMUM pour être RESTFUL
  • Template structuré de la manière suivante
    /views
        - structure.blade
    /layouts
        - login.blade
        - default.blade
    /pages
        - page1.blade
        - page2.blade
        - ...

Chaque page hérite d'un layout, le layout défault contient la structure d'une page classique de l'appli. Pour les structures plus fantaisistes, on en crée d'autres comme le layout login utilisé par la page login.

JavaScript

Le workflow JavaScript est très automatisé. Les fichiers de développement sont placés sous app/assets/js.

  • A la racine de ce dossier, on met tous les js spécifiques à une page (accueil.js, login.js, utilisateur.js etc...)
  • Dans app/assets/js/libs on met toutes les libs NON COMMON JS à inclure sur toutes les pages
  • Dans le dossier mods, on met tous nos modules COMMON JS perso.

Les fichiers à inclure dans les pages sont placés automatiquement par gulp dans public/js

  • /!\ IMPORTANT /!\
    • EN JAVASCRIPT LA COPIE D'OBJETS DOIT ÊTRE EXPLICITE ! UNE AFFECTATION SIMPLE PASSE UNE RÉFÉRENCE !!!
  • Pour tester le type d'une variable, on utilise l'opérateur typeof :
    typeof []; // object
    typeof {}; // object
    typeof ''; // string
    typeof new Date() // object
    typeof 1; // number
    typeof function () {}; // function
    typeof /test/i; // object
    typeof true; // boolean
    typeof null; // object
    typeof undefined; // undefined
    
    // Example : 
    if(typeof foo == 'undefined'){
        bar = true;
    }

CSS

Les fichier CSS sont écrits avec le langage Stylus (http://learnboost.github.io/stylus/)

  • Les fichiers de développenent en Stylus sont dans app/assets/css
  • Les fichiers compilés en CSS natif sont placés dans public/css
  • Les tailles de polices sont à définir en % pour le meilleur rendu possible en responsive

Liste des libs disponnibles

Javascript

  • Voir le package.json section "dependencies"
  • Pour avoir un aperçu de ce qui est dispo globalement dans toutes les pages (pas besoin de require), voir app.js
  • Pour les autres libs, il faut les require selon le besoin si elles sont installées via NPM Sinon, les inclure dans le template php dans la section scripts : @section('scripts')

PHP

About

Application de gestion de parking avec guidage à la place basée sur notre workflow

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •