Eric MILLOZ

            



IntegSite - Boite à outils PHP


Eric MILLOZ © 2001-2017

Sommaire

1 - Introduction

2 - A quoi cela sert ?

3 - Architecture logicielle.

4 - Fichier de Configuration

5 - Fonctionnement

6 - Récapitulatif fonctions et étiquettes.

7 - Foire Aux Questions.

8 - Auteur

9 - Remerciements particuliers

10 - Bibliographie.


1 - Introduction

IntegSite est une boite à outil logiciel qui permet de faciliter le travail de génération de site web.

L'évolution et l'outillage à bien évolué depuis les premiers sites web du début du web vers 1995. Les outils se sont affûtés et les méthodes de conception ont changées. Il reste néanmoins des tâches fastidieuses dans la création d'un site web, je pense à :

L'intégration graphique des pages PHP.
La génération de classe de gestion de la base de données.
La génération de formulaire.

Cette boite à outil logiciel permet de faciliter ces aspects.

Pourquoi cette démarche, alors qu'il existe des framework performant comme CakePhp, Symfony, Zend, etc..

Pour construire des sites, il faut connaître PHP ou ASP HTML, JavaScript, etc.. pourquoi devrais-je en plus connaître un framework qui va évoluer en permanence plutôt que de me concentrer sur mes processus métier. Oui, effectivement, un Framework ça me simplifier la vie, ça formate mes pages de la même façon ( cela permet d'uniformiser les développements).. mais il est aussi plus lourd à faire fonctionner (en terme de lignes exécutées pour le service rendu).

En 2000, j'étais développeur dans un service de production (j'y ai été affecté, afin d'outiller le service et ainsi de résoudre les carences informatique) qui utilisait des fichiers Word et autres feuilles imprimées pour assurer l'exploitation. En tant que développeur, j'ai réalisé, entre autres, un logiciel qui permettait de convertir un format de fichier simple (fichier type texte) éditable et modifiable facilement, en fichier HTML. L'idée d'un système de conversion de fichiers texte en HTML s'imposa et répondait bien au besoin. Ce système utilisait des balises dans les fichiers texte qui permettent d'afficher des images, des titres, des sommaires, faire des liens sur les procédures d'exploitation, etc.. l'outil lisait les répertoires récursivement et convertissait les fichiers texte en HTML. L'outil a été rapidement adopté car simple et fiable.

De fils en aiguille depuis 2001, cet outil nommé alors CTH, a évolué pour s'adapter aux nouvelles technologies de l'époque à savoir les langages scripts PHP, ASP.

Depuis 2007, le logiciel s'est transformé en boite à outil de développement, je l'ai utilisé pour construire ce site.

2 - A quoi cela sert ?

Ce logiciel permet plusieurs choses distinctes mais néanmoins complémentaire (constituant une unité globale)

Intégration des pages PHP dans une charte graphique

Il permet de s'affranchir des contraintes graphiques lors de la création de pages.

Un système de mixage de page permet de simplifier et d'accélérer la production de page du site.

L'avantage, une lisibilité accrue, de tester l'essentiel. Une fois le résultat obtenu, vous lancer la fusion entre votre couche graphique, votre ou vos fichiers HTML (contenant CSS, JavaScript, etc..) et vos fichiers PHP. Des exemples sont disponibles pour faire quelques tests.

L'inconvénient est qu'il faut régénérer le site à chaque modification d’un éléments.

Depuis les techniques ont évoluées, cette partie de l'outil n'est plus très utile (sauf si on a quelques centaine ou milliers de fichiers à convertir en HTML. Elle peut servir à assembler des portions de textes dans d'autres fichiers de manière massive.

Voir la section :Intégration des pages.

Génération des classes PHP pour la gestion de vos données

Cette fonction permet la création de classes PHP destiné à faciliter la gestion de votre base de données.

Les classes générées sont spécifiques à votre schéma de base de données. Vous changez un champ, une table, et vous n'avez plus qu'a relancer la génération des classes (les fichiers seront générés dans le répertoire include défini) et à changer les parties de vos sources ou le champ est utilisé.

Voir la section :Création des classes PHP de la base de données.

Génération de formulaire.

Il permet de générer des formulaires qui sont définis dans des fichiers descriptifs. Il est possible aussi de générer un formulaire à partir de champ contenu dans une table d'une base MySQL. Il est possible de mixer les deux pour une conception fine de formulaire.
Le résultat est un fichier PHP qui génère du HTML 5 pour le formulaire.

Voir la section : Création de formulaire.

Les fonctionnalités sont cumulable et complémentaire. La fonctionnalité -sgbd peut être cumulé avec -make. La fonctionnalité -form est utilisée à part pour faire une gestion formulaire.

3 - Architecture logicielle.

De quoi se compose cette architecture de développement.

L'ensemble se compose du logiciel IntegSite qui se trouve en téléchargement (page téléchargement), à installer.

L'installeur (sans virus) devrait vous installer dans le répertoire C:\program Files\IntegSite les fichiers suivants :

  • integsite.exe (exécutable permettant les opérations)
  • ISClass__connexion.php (Fichier php générique permettant la connexion aux bases de données Mysql)
  • ISForm.php (fichier utile pour la gestion des formulaires)
  • libmysql.dll (Librairie Mysql, API Mysql)
  • Uninst00.dat (information de désinstallation)
  • Uninst00.exe (exécutable de désinstallation)

  • L'architecture de votre projet Web doit se décomposer comme suit :

    Integsite:Explorateur_monsite
    architecture sur le disque dur.

  • votre projet est dans un dossier (en général à la racine).
  • un répertoire sources contient vos fichiers HTML ou PHP, répertoire include, tous ce qui est utile (images, etc.) pour faire votre site.
  • un répertoire cible qui contiendra le résultat de la conversion faites par l'instruction make.
  • un répertoire "formulaire" (le nom est libre) si vous voulez faire des formulaire HTML.
  • un fichier de configuration monsite.cfg (le nom est libre, mais c'est tellement plus simple).
  • un fichier de commande .bat qui permet d'appeler l'exécutable et de lui passer les paramètres de traitement.

  • Vous voila prêt !! mais ensuite il faut quelques outils logiciels pour construire vos pages.

    Pour les développements, je vous propose les outils suivants :

    Outils de composition HTML : Komposer, ou autres (mieux en Wysiwig).
    Outil pour les fichiers PHP : PsPad, notePad++, Eclipse Pdt, Netbeans PHP qui sont gratuit, ça vaut le coup d'investir dans PhpDesigner ou PhpEdit..
    Outil de gestion de base de données : HeidiSQL Ex:FrontSql ( http://www.heidisql.com/ ), MySQL Workbench (http://www.mysql.fr/downloads/workbench/ )

    4 - Fichier de Configuration

    Le logiciel a besoin de savoir un minimum de chose sur votre projet avant de pouvoir vous fournir ses services. Dans ce fichier vous devez indiquer les différentes informations nécessaires à son utilisation.

    Votre projet est dans un répertoire :

    Les fichiers sources dans un sous-répertoire (source)
    Les fichiers convertis seront dans un sous-répertoire (cible).
    Les fichiers de référence seront dans le sous-répertoire source.

    Le fichier monsite.cfg contient donc par exemple :
    RACINE=D:\monsite
    SOURCE=sources
    CIBLE=cible
    REPERTOIRE_INCLUDE=include
    FICHIER_REF=sources\_reference.php
    HOST=localhost
    DATABASE=nouveau
    USER=nouveau
    MDP=nouveau
    FICHIER_A_COPIER=fichier_css.css
    FICHIER_A_COPIER=...
    FICHIER_A_INCLURE=fichier de connexion php.
    FICHIER_A_INCLURE=fichier nécessaire à la gestion des formulaires.
    Détail des paramètres :
    Liste des paramètres RACINE c'est le chemin complet depuis la racine jusqu'au répertoire de vos pages (ici monsite)
    SOURCE désigne le répertoire (relatif à RACINE) dans lequel se trouve les fichiers sources PHP, HTML, etc..
    CIBLE désigne le répertoire (relatif à RACINE) dans lequel vont être traités les fichiers sources.
    REPERTOIRE_INCLUDE est le nom du répertoire ou vont se trouver les différents fichiers include PHP de vos pages.
    FICHIER_REF est le fichier référence par défaut (qui s'applique à tous les fichiers à traiter, sauf balise contraire dans les fichiers.) qui va servir à habiller vos pages.
    HOST est le nom de la machine, ou son adresse IP, sur laquelle est hébergé votre serveur base de données en local.
    DATABASE est le nom de votre schéma.
    USER est le nom d'utilisateur qui est autorisé sur ce schéma
    MDP est son Mot De Passe.
    FICHIER_A_COPIER cette étiquette permet de définir les fichiers (à partir de la racine) dans la cible. Car seuls les fichiers .php seront traités et copiés.
    Exemple : FICHIER_A_COPIER=mon_css.css ou FICHIER_A_COPIER=bye.htm
    FICHIER_A_INCLURE cette étiquette permet de définir les fichiers (à partir de la racine) qui seront à charger par le fichiers de formulaire (require_once(votre fichier);)
    Exemple : FICHIER_A_INCLURE=maClasse.php ou inc/maClasse.php

    Il est judicieux de placer ce fichier de configuration à la racine du projet web (ici : D:\monsite)

    Le fichier de configuration est à indiquer pour toutes les fonctionnalités.

    5 - Fonctionnement

    Le traitement et l'appel du programme se fait en ligne de commande (compatibilité Windows/Linux) par un fichier de commande .bat ou .sh. Une interface graphique est en cours de développement.

    L'appel minimum est :

    C:\Program Files\IntegSite\Integsite.exe -c fichier_de_configuration commande
    l'option -c préfixe le chemin du fichier de configuration qui contient
    IntegSite va lire le fichier de configuration en vérifiant sa cohérence.

    L'argument commande permet d'activer diverses fonctionnalités (-make, -sgbd, -form):

    1 - La création de l'arborescence. (commande -make)


    En résumé (en détail voir cliquez ici), vos fichiers PHP et vont être transformés et habillés par la page graphique de référence qui mettra en place l'aspect visuel de votre site.

    Chaque fichier va être intégré dans le fichier référence (ou les fichiers références) et le résultat de cette fusion va être copié dans le répertoire cible.

    Grâce au CSS, que partage vos fichiers et le fichier de référence s'intégreront parfaitement dans l'environnement graphique ainsi constitué.

    Dans le fichier de configuration, vous pourrez aussi faire la copie des fichiers que vous voulez voir apparaître dans le dossier cible pour que vos pages fonctionnent. (Le fichier CSS par exemple)

    Balise du fichier de configuration utilisé : RACINE, SOURCE, CIBLE, REPERTOIRE_INCLUDE, FICHIER_REF

    2 - La création de classe permettant de générer les classes qui vous permettrons d'accéder à votre base de données.(commande -sgbd)


    En résumé (en détail voir cliquez ici), votre base de données contient des tables dont vous voulez vous servir pour ajouter, effacer et modifier des enregistrements, IntegSite permet de générer des classes PHP pour cette gestion.

    Pour chaque table de la base de données (Que MySQL pour l'instant), un fichier de classe va être généré.

    Ce fichier (commençant par ISClass_ suivi du nom de la table) contient la classe et son ensemble de méthodes et variables permettant de faire des insertions, modifications et effacements d'enregistrements.

    On peut aussi créer sa requête pour lui faire exécuter.

    L'avantage est d'avoir une classe qui contient l'ensemble des champ de la table et de pouvoir agir directement dessus.

    Balise du fichier de configuration utilisé : RACINE, SOURCE, CIBLE, REPERTOIRE_INCLUDE, HOST, USER, MDP, DATABASE

    3- La création de fichier formulaire.(commande -form)


    En résumé (pour voir en détail cliquez ici), il est fastidieux de créer des formulaires qui fonctionnent du premier coup. les erreurs sont fréquentes, erreur de variable, les hidden manquant, les champs trop court, les variables non créées, mal assignées, bref un tas de raison qui font que vos formulaires sont difficile à mettre au point.
    Ce système de création permet de générer le fichier PHP de votre formulaire à partir du descriptif des champs que vous voulez voir apparaître.

    Il faut donc un fichier descriptif de formulaire qui sera lu par IntegSite pour la génération du fichier PHP.

    Deux façons vous avez une table ou pas. Si vous avez une table dans la base de données, il suffit d'indiquer à IntegSite la table à utiliser pour créer le formulaire.Vous n'avez pas de table, vous faites le descriptif des champs que vous voulez gérer.

    Une fois définis, les champs vont être utilisés pour faire le formulaire PHP, mais aussi pour gérer les variables. Dans le cas ou vous voulez un formulaire construit à partir d'une table, IntegSite utilisera les classes générés pour la base de données pour faire l'insertion, la modifications et effacements d'enregistrements.

    On peut aussi agir sur le comportement d'IntegSite via le fichier descriptif pour rendre un champ invisible, inactif, changer le libellé ou autres.

    Balise du fichier de configuration utilisé : HOST,USER,MDP,DATABASE

    Au final IntegSite aura permis de faire pas mal de transformation, de préparation, pour l'utilisation de vos fichiers PHP, classe de base de données, et formulaire.

    Vous n'avez pas taper une ligne de PHP, les lignes PHP qui ont été générés sont lisible, clair, et facilement utilisable et surtout générique pour toutes les tables, ou form. Les formulaires sont générés identiquement.

    Bien sur, vous pouvez rajouter les éléments pour votre site, tous ce que vous voulez sans contrainte (la seule contrainte c'est votre organisation), des classes, du JavaScript, des contrôles, des classes PHP, du flash, etc.tout en maîtrisant le contenu de toutes les pages du début à la fin.

    Les 3 fonctionnalités peuvent être utilisées séparément sans dépendance entres elles.

    6 - Récapitulatif fonctions et étiquettes.

    Récapitulatif des fonctions et étiquettes du fichier de configuration.

      MAKE SGBD FORM 
    RACINE= Obligatoire Obligatoire Obligatoire 
    SOURCE= Obligatoire Obligatoire   
    CIBLE= Obligatoire Obligatoire   
    REPERTOIRE_INCLUDE= Obligatoire Obligatoire (Optionnel) 
    FICHIER_REF= Obligatoire     
    HOST=   Obligatoire (Optionnel) 
    DATABASE=   Obligatoire (Optionnel) 
    USER=   Obligatoire (Optionnel) 
    MDP=   Obligatoire (Optionnel) 
    FICHIER_A_COPIER= (Optionnel)     
    FICHIER_A_INCLURE= (Optionnel) (Optionnel)   

    7 - Foire Aux Questions.

  • Q : Génére t'il les classes Php pour gérer les opérations d'insertions, de sélection , de mise à jours, d'effacement , de recherche, etc.?
    R : Oui, les fonctions de base sont présentes, et plus encore. Vous pouvez aussi soumettre vos propres requêtes.

  • Q : l'intégration de fichier se fait elle que pour les fichiers PHP.
    R : Je l'ai fait dans cette optique, mais je me rends compte que cela peut marcher pour ASP et tous autres langages textes (sous réserve).

  • Q: En quel langage est réalisé IntegSite ?
    R : Premièrement en VB 6 (mais trop fouillis), puis converti en C# (mieux organisé mais trop lent), puis en C++.
  • 8 - Auteur

    IntegSite est écris par Eric MILLOZ
    La version courante est sur la page de téléchargement.

    9 - Remerciements particuliers

    Merci à ma famille qui me supporte (dans les 2 sens du terme).

    10 - Bibliographie.

    www.php.net, W3C.org
    La révolution HTML5
    HTML5 sur Wikipédia.

    Articles
    La i-Girouette (09/12/2017)TER St-Etienne Ambérieux (15/04/2018)