Eric MILLOZ © 2001-2023
IntegSite - Boite à outils PHP
Eric MILLOZ © 2001-2023
Sommaire
1 - Introduction
2 - Petit historique (vous pouvez sauter le chapitre de la génése de l'outil)
3 - A quoi cela sert en détail ?
4 - Architecture logicielle pour PHP.
5 - Fichier de Configuration
6 - Fonctionnement
7 - Récapitulatif fonctions et étiquettes.
8 - Foire Aux Questions.
9 - Auteur
10 - Remerciements particuliers
11 - Bibliographie.
1 - Introduction
IntegSite est une boite à outil logiciel qui permet de faciliter le travail de génération de site web.
La version actuelle pour Linux et la 2.X (la version Windows 1.X en C# a été abandonnée)
Ce programme est libre de droit d'utilisation.
Ce programme permet de faciliter le developpement de site web en PHP 7 & 8.
Ce programme s'adresse a des personnes voulant s'initier à la programmation web en PHP de manière rapide.
L'utilisation de integSite va permettre d'accélèrer les dev sur certains aspects facilitant 2 tâches fastidieuses dans la création d'un site web :
- La génération de classe de gestion permettant l'accès à la base de données.
- La génération de formulaire. (avec et sans base de données)
Pourquoi cette démarche, alors qu'il existe des framework performant comme CakePhp, Symfony, Zend, etc.. parceque ces environnement ne sont pas facile d'accès et sont très long a appréhender.
2 - Petit historique (vous pouvez sauter le chapitre de la génése de l'outil)
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.
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.
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.
Il permettait de faire :
les classes objet PHP pour se servir de la base de données facilement les formulaires html à partir des tables (ou pas) avec usage des classes générées. ce qui facilite les formulaires et une fonction de mixage du code et du html pour facilier la tâche du developpeur C'était une version developper pour Windows faites en C#.
Depuis 2019, Windows me sort par les yeux, et je décide de me focaliser sur Linux (que je connais depuis 1994), l'outil passe donc sous linux et ne garde que 2 fonctionnalités :
les classes objet PHP pour se servir de la base de données facilement les formulaires html à partir des tables (ou pas) avec usage des classes générées. (ce qui facilite l'usage les formulaires)
c'est ces fonctions que je vais détailler.
3 - A quoi cela sert en détail ?
Ce logiciel permet deux choses distinctes mais néanmoins complémentaire (constituant une unité complémentaire)
Génération de formulaire.
Cette fonctionnalité permet de générer un formulaire à partir des données soit d'une table dans une base MySQL ou d'un fichier ou des 2 !!.
Un fichier descriptif du formulaire décrit et qualifie chaque champs pour générer le formulaire adapté à vos besoins.
un fichier par formulaire = un formulaire html.
Il est possible aussi de générer un formulaire qu'avec le fichier descriptif sans pour autant avoir une table en base.
Voir la section : Création de formulaire.
Il est possible aussi de générer un formulaire à partir de champ contenu dans une table. Il est possible de mixer les deux pour une conception fine du formulaire.
Le résultat est un fichier PHP qui génère du HTML 5 pour le formulaire.
le formulaire créer peut servir a tester les données qu'il sert a éditer, insérer ou éffacer des données.
Avantage : Générer a loisir les formulaires sans changer en profondeur votre code.
Génération des classes PHP pour la gestion de vos données en base.
L'outil permet de générer dans le repertoire include de votre site les fichiers de classes pour chaque tables présentes dans la 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, un index 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é.
une classe dérivée sera bien utile pour faire la liaison entre la couche de présentation et la couche base de données.
Voir la section :Création des classes PHP de la base de données.
Avantage : Générer a loisir les champs/tables sans modifier en profondeur votre code existant.
4 - Architecture logicielle pour PHP.
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), fichier deb à installer avec dpkg.
L'installation se fait grace a un fichier .deb et à la commande :
sudo apt-get install ./integsite_XXX.deb
integsite (exécutable permettant les opérations) ISClass__connexion.php (Fichier php générique permettant la connexion à votre base de données Mysql) ISForm.php (fichier utile pour la gestion des formulaires)
L'architecture de votre projet Web doit se décomposer en terme de repertoire :
soit vos sources sont dans le repertoire /var/www/html/ (des droits doivent être appliquer pour y accèder)
soit un repertoire lecteur réseau monté sur un NAS Syno ou Qnap.)
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 : Visual Code, PsPad, notePad++, Eclipse Pdt, Netbeans PHP qui sont gratuit.
Outil de gestion de base de données : HeidiSQL Ex:FrontSql ( http://www.heidisql.com/ ) pour windows, MySQL Workbench (https://dev.mysql.com/downloads/workbench/ ) Windows/Linux
5 - Fichier de Configuration
Le logiciel a besoin de savoir un minimum de chose sur votre projet avant de pouvoir vous fournir ses services.
un fichier de configuration permet de renseigner les différentes informations nécessaires à son utilisation.
le fichier doit avoir comme extention .cfg
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 :
Détail des paramètres :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.
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.
6 - 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
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.
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
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.
7 - Récapitulatif fonctions et étiquettes.
Récapitulatif des fonctions et étiquettes du fichier de configuration.
Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325
Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 MAKE SGBD FORM Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 RACINE= Obligatoire Obligatoire Obligatoire Warning: Undefined array key 3 in /volume1/web/www/inc/all.php on line 319 Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 SOURCE= Obligatoire Obligatoire Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 CIBLE= Obligatoire Obligatoire Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 REPERTOIRE_INCLUDE= Obligatoire Obligatoire (Optionnel) Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 FICHIER_REF= Obligatoire Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 HOST= Obligatoire (Optionnel) Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 DATABASE= Obligatoire (Optionnel) Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 USER= Obligatoire (Optionnel) Warning: Undefined array key 3 in /volume1/web/www/inc/all.php on line 319 Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 MDP= Obligatoire (Optionnel) Warning: Undefined array key 3 in /volume1/web/www/inc/all.php on line 319 Warning: Undefined variable $debutTableau in /volume1/web/www/inc/all.php on line 325 FICHIER_A_COPIER= (Optionnel) FICHIER_A_INCLURE= (Optionnel) (Optionnel)
8 - 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++.
9 - Auteur
IntegSite est écris par Eric MILLOZ
La version courante est sur la page de téléchargement.
10 - Remerciements particuliers
Merci à ma famille qui me supporte (dans les 2 sens du terme).
11 - Bibliographie.
www.php.net, W3C.org
La révolution HTML5
HTML5 sur Wikipédia.