Retour : Page Principale > Méthodes de réalisation d'applications

Développement d'applications web indépendantes (anciennes méthodes)


OBSOLETE (2016) - ces informations sont considérées comme n'ayant plus cours en 2016


Introduction

Le but de ce document est de fournir un cadre de travail pour la réalisation d'application (et de sous-application) pour Papyrus. Mais, il est aussi très important que ces applications restent portables et utilisée soit de manière complétement autonome, soit dans d'autres applications comme Spip.
Nous allons donc voir comment procéder pour obtenir un tel résultat.

Notion d'application

Nous considérons comme faisant partie d'une même application web tous les fichiers utilisés pour la réalisation d'une ou plusieurs pages web ayant un lien entre elles.
Tous les fichiers de ces applications se trouvent, sur le serveur, au sein d'un même dossier racine qui peut être sous divisé en plusieurs sous-dossiers. Selon une arborescence définie ci-dessous :

- RACINE : contient éventuellement un fichier index.php qui inclue le fichier principal.
  • * nom_appli : contient des dossiers où sont rangés les fichiers de l'applications de l'utilisateur. Tous les fichiers d'une application (hormis index.php) doivent être préfixé par trois lettres en majuscule correspondant aux initiales de l'application.
    • * applications : contient un dossier pour chaque sous-application. Nous retrouverons pour chacune d'entres
    • * bibliotheque : contient des dossiers où sont rangés les fichiers de code php communs aux différents fichiers de l'applications (fonctions, classes, autres...).
    • * configuration : contient les fichiers PHP permettant de configurer l'application.
    • * documentation : contient les fichiers de documentation de l'application (fichiers générés par phpdocumentor).
    • * installation : contient les fichiers SQL permettant de générer la base de données de l'application.
    • * langues : contient les fichiers PHP ou XML permettant de traduire l'application.
    • * presentations : des dossiers où sont rangés les fichiers de présentation (css, squelettes...) propres à l'application.
      • * images : contient des dossiers où sont rangés les images spécifiques à l'application.
      • * styles : contient les fichiers CSS de l'application.
      • * dtd : contient les fichiers DTD de l'application.
      • * scripts : contient des fichiers .js à inclure tel quel dans le squelette de l'application.
      • * squelettes : dans le cas de grosse application contient des fichiers de squelette.
elles la même arborescence que pour l'application. Ces sous-applications doivent être considérée comme des sous-paquetages.
  • * nom_appli.php : le fichier de départ de l'application. Devra contenir la fonction GEN_afficherConenuCorps() qui renverra le xhtml généré par l'application pour être compatible avec Papyrus.
  • * autres fichiers .inc.php : d'autres fichiers php inclus ou pas par index.php peuvent être stockés ici. Ils auront l'extension .inc.php.
  • * index.php : le fichier automatiquement reconnu par Apache comme page d'accueil. Dans Papyrus, il contiendra une redirection vers le fichier principal de l'application. En dehors de Génésia, ce fichier pourra servir de squelette de page XHTML est appeler, au bon endroit, la fonction GEN_afficherContenuCorps() après avoir inclu le fichier principale de l'application qui contient cette fonction. La modification du (ou des) fichier(s) de configuration devra alors suffire pour que l'application puissent fonctionner en dehors de Papyrus.

Notion de sous-application

Lorsque nous voulons réaliser une application reprenant une grosse partie du code d'une application existante, il est alors intéressant de créer une sous-application.
Un sous-aplication possédera une dossier à l'intérieur du dossier sous_applications d'une application principale. Elle aura à l'intérieur de son dossier la même arborescence qu'une application.
Une sous-application pourra faire appel de façon très étroite au code de l'application principale. Une sous-application sans l'application principale ne peut pas fonctionner. Par contre, cela n'empêche pas de réaliser aussi un fichier de configuration pour cette sous-application de tel façon que nous puissions aussi facilement la rendre autonome et portable si elle est accompagné de son application principale.
Un bon exemple de ce cas de figure est Papyrus qui contient des sous-applications permettant la gestion des sites, des menus... A noter toutefois, que le dossier s'appelle applications et que son fichier principal se trouve à la racine du site et non dans son dossier car Papyrus est le moteur permettant de faire tourner des appli.

Notion de paquetage

Tous les fichiers, hormis ceux :
  • provenant des bibliothèque non spécifiques à l'application (fichiers de Pear, par exemple)
  • du dossier "sous_applications" appartiennent au même paquetage.
Tous ces fichiers devront débuter par une abréviation (ou un nom complet s'il est court) en minuscule correspondant au but ou à l'utilisation de l'application. Cette abreviation permet d'identifier rapidement à quel application le fichier correspond.
Les fichiers de fonctions et de classes provenant de la bibliothèque devront se conformer aux règles établies dans la convention de codage de Tela Botanica.
Ici nous utiliserons "exp" comme abréviation de paquetage pour nos exemples.
Les "sous_applications" d'une application principale auront leur propre nom de paquetage et leur propre arborescence de dossier, basés sur les même règles que pour une application.

Notion de sous-paquetage

Au sein d'une application, il est possible de classer les fichiers dans des sous-paquetage. Par exemple, tous les fichiers présent dans le dossier bibliotheque/fonctions/ pourront appartenir au sous-paquetage "Fonctions". De même, tous les fichiers présent dans le dossier bibliotheque/classes/ pourront appartenir au sous-paquetage "Classes". L'organisation en sous-paquetage dépend de la complexité de l'application.
Le but des sous-paquetage est de simplifier la consultation de la documentation générée par  PhpDocumentor.
Générez votre documentation pour voir ce que donne votre organisation en paquetage et sous-paquetage.

Les fichiers d'une application ou d'une sous-application


Fichiers racines de l'application - Dossier : nom_appli

Un application possède un fichier principal portant le même nom que le dossier de l'application. Il peut inclure peut être constitué de plusieurs fichiers afin d'éviter l'utilisation d'un fichier unique très volumineux.
Le fichier principal et ses fichiers liés (dont le suffixe est ".inc.php") peuvent faire appel à des fonctions ou des classes provenant de la bibliothèque de l'application (dossier bibliotheque )ou d'une API comme PEAR.
Si une application fait appel à du code externe à l'application, il est obligatoire de préciser dans sa documentation, les fichiers et les bibliothèques requises.

Fichiers bibliothèques - Dossier : bibliotheque

Contient directement, ou bien structuré grâce à des dossiers, les fichiers de fonctions ou de classes.
Les fichiers de classes php sont suffixé ainsi : ".class.php". Chaque fichier est préfixé par trois lettres correspondant à son paquetage (c'est à dire l'abréviation du nom de l'application), suivi, si on a à faire à une sous-application, au trois lettre de sous-paquetage (c'est à dire l'abréviation du nom de la sous-application). Les fichiers de fonctions sont suffixés par : .fonct.php. Chaque fichier est préfixé par trois lettres correspondant à son paquetage (c'est à dire l'abréviation du nom de l'application), suivi, si on a à faire à une sous-application, au trois lettre de sous-paquetage (c'est à dire l'abréviation du nom de la sous-application).

Fichiers de configuration - Dossier : configuration

Le fichier de configuration principal est de la forme exp_config.inc.php. Il inclura seulement d'autres fichiers de configuration présent dans le même dossier que lui. Il contient des définitions de constantes ou de variables permettant de configurer l'application.
Ce fichier permet d'exporter facilement une application hors du gestionnaire de site Papyrus car toutes les valeurs de la variable globale $_GEN_commun ou d'autres variables et constantes spécifiques à Papyrus sont utilisées dans ce fichier. De cette façon, il est facile de les remplacer lors de l'export vers un autre site n'utilisant pas Papyrus.
Ce fichier de configuration est généralement le premier fichier inclu par le fichier principale de l'application.
Nous pourrons trouver come autres fichiers de configuration :
  • exp_config_chemin.inc.php : contenant les constantes de chemins d'accès vers les fichiers inclus dans l'application.
  • exp_config_nom_fichier.inc.php : contenant les constantes de de noms de fichiers inclus dans l'application.

Fichiers de documentation - Dossier : documentation

Contient les fichiers générés par PhpDocumentor ainsi qu'un dossier modele dans lequel nous trouverons les modèles de la base de données de l'application.
Nous pourrons aussi trouver un rapport sur l'application ou ses spécifications.

Fichiers d'installation - Dossier : installation

Nous trouverons dans ce dossier les ressources nécessaire à l'intallation de l'application comme les fichiers SQL. Si nous avons à faire à une grosse application, une sous-application Installateur pourra être créée afin de pouvoir installer l'application principale via une interface graphique. Cette sous-application Installateur devra alors récupérer les ressources nécessaire à l'installation (comme le fichier SQL) dans le dossier installation de l'application principale.

Fichiers de traduction - Dossier : langues

Contient un fichier par paire langue pays et un fichier par langue. Ils seront de la forme exp_langue_en.inc.php ou exp_langue_en-UK.inc.php. L'application (ou la sous-application) devra inclure un seul fichier à la fois. Celui correspondant à la langue pays demandé. Tous les fichiers présents dans ce dossier devront définir les mêmes constantes et variables.
Nous pourrons trouver une hiérarchie. Nous pourrons trouver par exemple un fichier exp_langue_fr.inc.php définissant les constantes et variables commune à toutes les localisations (=pays) du français. Puis, dans des fichiers précisant la localisation, comme exp_langue_fr-FR.inc.php ou exp_langue_fr-CA.inc.php, nous pourront préciser seulement les différences. L'application dans tous les cas, devrait plutôt inclure les fichiers possédant une localisation (exp_langue_fr-FR.inc.php) qui lui même inclura le fichier commun (exp_langue_fr.inc.php).

Fichiers de presentation - Dossier : presentations

Contient des sous-dossier liés à la présentation de l'application :
  • * images : contient les images spécifiques à l'application. Si l'application contient beaucoup d'images, elles peuvent être organiser dans des dossiers.
  • * styles : contient les fichiers de styles (CSS) de l'application.
  • * dtd : contient les fichiers DTD de l'application.
  • * scripts : contient des fichiers de scripts (.js) à inclure tel quel dans le squelette de l'application.
  • * squelettes : dans le cas de grosse application contient des fichiers de squelette.

Les fichiers des sous-applications - Dossier : sous_applications

Ce dossier contient un dossier par sous-application. Nous trouverons dans chacune des dossiers de sous-application la même arborescence que celle d'une application.
Nous conscidérons comme sous-application toute application utilisant de façon très étroite les fonctions, classes, fichiers ou tables (de base de données) d'une application principale.

La base de données de l'application


Elle doit respecter les règles de la  convention de réalisation des modèles de base de données de Tela Botanica.
Elle doit tenir compte des autres bases de données déjà existante.
Le paquetage de Pear d'absctraction de base de données (DB) devra être utilisé pour s'y connecter.