Tag cloud
Méthode logiciel routes MySQL cakefest productivité communauté mvc ASP.NET pierre martin stage motivation web lithium framework jsf open source outils développement web xhtml CakePHP css ie6 filezilla astuce twitter wordpress débogage conférences conception loi migration référencement behavior scrum pense-bête php java blog
-
Kalt


Cakefest #3 – Premier jour de conférences
Cohabitation et copropriété d’applications CakePHP – Robert Scherer
Le titre « original » est « Multi-Tenancy in CakePHP » mais j’ai eu un peu de mal à traduire le titre
Cette présentation n’était pas planifiée initialement mais s’est avéré très intéressante car elle consiste en un retour concret d’expérience de la part d’une société de consulting. Le projet présenté consistait à fournir un système métier de gestion d’assurances automobiles en marque blanche. Ce projet a été développé en CakePHP par la société M-Invent GmbH (il me semble !) et était un vrai challenge au niveau de la conception.
En effet, il fallait créer une application générique pouvant être également très finement adaptée pour les besoins de chaque site créé. La solution qu’ils ont reprise (en place avant leur intervention) était assez mal développée et la duplication et la cohabitation des différents sites était gérée par du copier-coller pur et simple ! Il est évident que la maintenance de ces applications était devenue impossible. Au final, la solution livrée permettait de créer de manière haut-niveau un nouveau site contenant les informations souhaitées, et correspondant parfaitement à chaque attente spécifique. Ce logiciel était vendu en mode SaaS.
Chaque application devait contenir différents rôles communs à toutes les applications mais restreints à celle-ci. C’est à dire que chaque application contenait les rôles suivants :
Et bien sûr chaque application devait être adaptée aux besoins de chacun des clients, ce qui a imposé des challenges concernant les points suivants :
CakePHP a permis de résoudre simplement la plupart de ces challenges grâce aux mécanismes fournis et notamment aux composants Auth et ACL. De plus la gestion des thèmes proposée par CakePHP a été très utile pour la personnalisation de l’interface de chacune des applications. D’autre part, Robert a présenté rapidement l’architecture générique qui avait été choisie pour ce projet.
L’application était divisée en modules (classe et contrôleur) pouvant contenir plusieurs addons (classe et éléments). Les classes existantes étaient donc :
Une fois cette architecture présentée, la conférence a consisté à une démonstration de certains écrans des applications prouvant à quel point ils étaient parvenus à personnaliser chaque application. Cette présentation était donc très intéressante car il s’agissait d’un retour concret d’expérience de professionnels ayant effectué un travail remarquable pour tirer pleinement partie du framework pour créer une application scalable, performante et très finement personnalisable !
Malheureusement les slides ne sont pas disponibles à ma connaissance … il faudra vous contenter de ces quelques explications