LaToileScoute - accueil  
Plante ta tente sur le web !
Accueil S'informer Discuter Surfer Jouer Echanger  
Rechercher
Newsletter
Participer
  J'ai une date
J'ai un article
J'ai une photo
Aide
Presentation
  L'association
Copyright
Nous contacter
Goodies
  E-cards
Flyers
Bannieres
Fonds d'ecran
La Boutique
  Acces direct !
Presentation
 
accueil > presentation > outils > developpements
 
 

Développement avec EclipseLes développements sur LaToileScoute !

Presque tous les développements serveurs sur LaToileScoute ont été montés de toute pièce pour le portail. Ainsi, nous disposons d'un espace de travail vraiment optimisé pour les développements d'applications scoutes.

En terme de langages, l'essentiel est réalisé en PHP. D'autres langages interviennent dans des situations un peu spécifiques, comme par exemple :

  • Les scripts shell : pour les routines des serveurs, du système de publication, des newsletters, etc...
  • Le C, pour des petites applications comme les tests, ou certaines applications bas niveau du serveur.
  • Le perl, qui sert aussi de script pour le serveur avec utilisation intensive des expressions régulières.

Bref, revenons-en au PHP !

Ce langage, qui est parti du petit script pour pages perso est maintenant d'une puissance incomparable. Tout en gardant sa souplesse syntaxique et grâce à l'ensemble des outils dont il dispose, il n'a rien à envier aux serveurs d'application J2EE et .NET ! Si ce n'est qu'il est très différent... un développeur JAVA code sur des rails, un développeur PHP code où bon lui semble.

Cette dernière caractéristique en fait un langage très abordable, mais aussi très limité pour les débutants en programmation. En effet, lorsqu'on peut programmer sans se poser des questions d'algorithmique et d'architecture, on se retrouve vite face à un mur... et c'est très dommage, car PHP dispose maintenant de tous les outils nécessaires au développement de grosses applications distribuées !

Le développeur PHP doit être plus rigoureux que les autres. Il doit être aussi très curieux des principes de programmation fondamentale et respectueux de règles de programmation strictes, telles que celles proposées par le projet PEAR.

Modèle Physique de Données du projet LaToileScouteLes développements PHP sur LaToileScoute

Le projet LaToileScoute a débuté début 2001 . L'architecture interne du projet est donc basé sur la version PHP de l'époque, c'est à dire les débuts de la version 4. Maintenant, PHP 5 offre plein de nouvelles possibilités (objet, gestion des exception, ...) et des projets comme PEAR ou SMARTY auraient été très appréciés pour débuter. Nous disposons malgré tout d'un workspace déjà très abouti. LaToileScoute a cependant adapté ses développements et est passée PHP 5 en août 2005, accroissant au passage sa sécurité.

La base de données

La base de données (cf. l'aperçu du modèle physique de données (MPD) à droite) a été pensée pour le fonctionnement actuel et à venir du portail, en allant même plus loin ! Voici une petite présentation de la base de données.

  • En orange et en rouge : la gestion des utilisateurs, des groupes et des droits.
  • En gris (à gauche) : la gestion des carrières (mandats, formations, etc.)
  • En violet (à droite) : 4 relations permettant de gérer de manière souple et détaillée les validations.
  • En bleu foncé : la gestion des activités (jeux, chants, veillées, ...).
  • En vert foncé : la gestion technique du portail (jeux de scripts, transactions et données de synchronisation avec d'autres bases).
  • En jaune : les relations génériques : fichiers binaires, contacts, liens, fiches, types de données.
  • En vert clair : les relations intermédiaires : les menus (entre les plats et les événements), les participations, les rôles (entre carrières et utilisateurs), les planifications et les relations spécifiques (pour certaines applications, entre des tables génériques).
  • En bleu clair (en bas à gauche) : les relations lourdes : lieux (de camp, de réunion, ...), événements, plats, sites internet (pour annuaire).
  • En bleu clair (en haut à droite) : la relation des structures (unités), les tâches et les citations.

LibrairiesL'architecture technique bas niveau : les librairies

Les librairies sont des classes, rangées dans des répertoires (paquetages) qui ont pour rôle de rendre des services assez larges pour être utilisés dans de très nombreux cas.

Par exemple, le paquetage "security" contient un ensemble de librairies de gestion d'utilisateurs et de groupes, de droits d'accès, etc...

Ces librairies sont liées au site de pilotage (voir ci-dessous). Les principaux paquetages de notre projet sont les suivants :

  • Sécurity : gestion des utilisateurs, des droits et de la sécurité (traçage des opérations, logs, sécurité des protocoles, profiling, ...).
  • Squelette : assure la gestion des templates responsables de l'aspect graphique du site de pilotage et de ses applications.
  • MySFN : outils de gestion de la base de données : génération/traitement automatique des formulaires, réalisation de requêtes complexes, etc.
  • Error : gestion des exceptions, des messages d'erreur et du débuggage.
  • Form : librairies utiles pour la gestion de formulaires non liés à la base de données.
  • Matrix : gestion de tableaux complexes.
  • Task : gestion des tâches internes au site de pilotage.
  • Synchro : gestion de la synchronisation entre la base de données LTS et des bases extérieures (actuellement incomplet).

Voilà pour ce qui est des outils fondamentaux de la plateforme de développement. A côté de cela, d'autres classes existent, qui permettent de gérer les spécificités du portail LaToileScoute. (car le site de pilotage permet aussi de gérer d'autres portails).

Parmi les librairies utiles pour les spécificités du portail, nous retrouvons essentiellement des classes de gestion des rubriques et de la navigation (menus, interface graphique et optimisation des performances liées au fonctionnement un peu particulier de LaToileScoute).

Le développeur LaToileScoute peut à tout moment utiliser ces librairies, que ce soit dans le site de pilotage ou sur le portail.

Le niveau intermédiaire : les modules

Les modules du site de pilotage, basés sur les librairies, ont des rôles concrets pour l'utilisateur. Voici un aperçu du panel de modules disponibles sur le site de pilotage (Ill. fin 2002) :

Modules du site de pilotage

Le site de pilotage

Le site de pilotage est un site masqué aux utilisateurs de LaToileScoute. Il permet de gérer tous les dynamismes du site : génération des menus, validation des annonces, des demandes de référencement sur l'annuaire, etc ...

 

SynchronisationLe portail LaToileScoute

Il contient de nombreux frontaux liés à la base de données et aux développements du site de pilotage. Ce dernier sert souvent de "back office" aux applications dynamiques du portail.

Mais LaToileScoute possède aussi son architecture technique, que nous pouvons découvrir en étudiant par exemple, la procédure de synchronisation qui a lieu quotidiennement pour mettre à jour les données du portail avec ce qui a été validé par les acteurs sur le serveur de développement. 

Note : pour en savoir plus sur l'architecture technique de LaToileScoute, hors développements, tu peux visiter la page de présentation technique de LaToileScoute.  

1. La synchronisation avec le serveur de développement consiste à rapatrier sur la production (version en ligne) le contenu validé, par l'intermédiaire d'un outil bas niveau lié à des scripts shell.

2. Vient ensuite la mise à jour des menus ! Les menus sur LaToileScoute sont gérés via des templates XML, qui sont lus par le générateur de menus, puis vient une phase d'analyse des données et de génération proprement dite de "plugins", liés à chaque page, pour son menu. (cf. illustration plus bas).

3. Génération des pages statiques : il existe deux types de pages sur le portail :

  • les pages semi statiques : c'est à dire celles qui ne bougent pas au moins pendant 24 heures,
  • et les pages dynamiques : qui, elles, évoluent fortement (petites annonces, forums, etc.).

La génération des pages statiques consiste à améliorer les performances en rendant statiques les pages qui peuvent l'être. En l'occurrence, il s'agit surtout de celles qui ont de dynamique l'inclusion du menu, ou l'affichage de données dynamiques qui ne bougent pas beaucoup (statistiques, ...).

4. La mise à jour de l'indexation est réalisée à la fin, pour que le moteur de recherche textuelle fournisse des résultats cohérents en permanence, malgré les mouvements réguliers de publication.

Voici un petit zoom sur l'organisation du script de génération des menus réalisée en PHP :

Génération des menus sur LaToileScoute

Note : Certaines informations ont été volontairement cachées pour des raisons de sécurité. Pour obtenir davantage d'infos sur l'architecture interne de LaToileScoute ou sur la base de données, ou pour étudier ta participation au développement technique de la plateforme, tu peux contacter Guillaume en te présentant et en précisant les raisons de ta demande.

     

Auteur de la page : Guillaume Ponçon. Page créée le 08/03/2004
Contributeurs : francois (via OPINEL) Dernière modification effectuée le 01/04/2004
Fonctionnalités exploitées : Backend LTS (+ d'infos)
© LaToileScoute 2001 - 2008