Createch, logiciel d'aide à la régie générale : conception !

createch

Une présentation des différents outils utilisés et des techniques.

Pour les besoins de mon travail, j'ai décidé il y a quelques temps de me lancer dans la réalisation d'un logiciel qui pouvait m'aider dans les différentes taches de mon métier : La régie générale et la direction technique de spectacle. Il est écrit en php et en javascript.

La version 1 fut écrit en php brut et le code est devenu rapidement un beau fouilli à maintenir et à faire évoluer. C'est là que je suis interressé au framework php et plus particulièrement à Symfony.

La version 2 sera écrite en php avec le framework symfony 2.

symfony 2

 Il y aura un long moment d'apprentissage du framework mais cela en valait la pène car le code était beaucoup plus lisible et surtout maintenable. Seulement des problèmes de performance à l'utilisation faisait que ce n'était pas idéal.

Dans la version 3, j'ai réécris complètement le code et j'ai séparé la partie serveur de la partie client.

Symfony 3 et Vue.js et maintenant Vue.js 2

La version 3 utilise le framework symfony 3 pour la partie serveur en php et Vuejs pour la partie client en javascript.

vuejssymfony 3

La partie serveur

J'utilise pour coder la partie serveur en PHP, netbeans. C'est un IDE open source qui permet l'autocomplétion relativement facile du code.

Netbeans

Symfony 3 et l'utilisation du FOSRestBundle

Le serveur de l'application est créé sur la base d'une API REST. J'ai utilisé pour cela le FOSrestbundle, qui m'a permi après une petite série de réglage, un développement rapide.

l'installation avec comoser est simple : 

$ composer require friendsofsymfony/rest-bundle

puis on le déclare dans le kernel :

public function registerBundles() { $bundles = array( // ... new FOS\RestBundle\FOSRestBundle(), ); // ... }

ensuite le configurer dans le fichier config de l'application :

fos_rest: disable_csrf_role: true param_fetcher_listener: true body_listener: true ....

dans ce fichier config j'ai pour le temps du développement enlevé la protection CSRF. Pour la remmettre en service, il faut la gèrer coté clientµ
Pour une configuration complète, voir la documentation : http://symfony.com/doc/master/bundles/FOSRestBundle/configuration-reference.html

puis créer une route en lien avec le routeur du bundle dans lequel on travail :

api:
    resource: "@AppBundle/Resources/config/routing.yml"
    type: rest

    prefix: /api   

ensuite, il faut créer les routes en lien avec chaques controlleur :

entity:
    type: rest
    resource: AppBundle\Controller\EntityController

enfin dans le controlleur, on créer les actions getEntityAction, postEntityAction, putEntityAction, deleteEntityAction, qui vont correspondrent aux routes GET api/entity, POST api/entity, PUT api/entity, DELETE api/entity

Pour tester l'api REST, J'utilise ARC ( Advanced REST Client ) application que l'on charge dans le navigateur Chromium

ARC


L'utilisation de doctrine et de symfony me permet de mettre en place une validation et une sauvegarde vraiment poussée des données, sans complication.

La partie client

Pour coder la partie client en Html, CSS et javascript, j'utilise Atom. C'est un éditeur de texte "ultra configurable" grace à l'utilisation de nombreux modules. ( emmet, linter, coloration syntaxique, ... )

Atom

L'application cliente est une SPA "single page application" écrite avec le framework Vuejs version 2 en javascript, j'utilise vue-router pour gerer les routes mais également vuex qui me permet une structure de type "Flux" entre mes différents modules et enfin, pour mes requettes http, j'utilise vue-resource axios et vue-axios.

Pour l'instant, les parties opérationnelle de l'application sont :

  • une partie réglages/options
  • une partie budget.
  • une partie gestion des taches de maintenances
  • une partie gestion des dates des différentes vérifications
  • une partie gestion des dates et heures de présences

reglage2

Add new comment