Concevoir une application en PHP
Présentation
Lors de la réalisation d'une application le choix du langage de programmation est conditionné par l'utilisation qui sera faite du logiciel. PHP est donc utile si vos utilisateurs sont nombreux et réparti géographiquement, car il ne nécessite pas l'installation d'un logiciel client lourd, un simple navigateur internet suffit.Dès lors qu'une application contient des données importantes, il est utile de pouvoir contrôler les accès à celles-ci, pour cela une identification de chaque utilisateur est nécessaire. Nous allons voir dans cet article comment structurer son code afin de réaliser une application de gestion complexe.
Création de la structure
Dans un premier temps, il est nécessaire de déterminer la structure de l'application, c'est-à-dire les différents utilisateurs ainsi que les fonctionnalités accessibles à chacun.Par exemple, pour un logiciel de gestion de notes dans un établissement scolaire, on aura les types d'utilisateurs suivants :
Type utilisateur | Fonctionnalités |
Administrateur |
|
Direction |
|
Vie scolaire |
|
Enseignants |
|
Elèves |
|
Nom de la table | Champs de la table |
typeUtilisateur |
|
utilisateur |
|
Nom de la table | Champs de la table |
fonctionnalités |
|
Exemple de table fonctionnalités complétées :
type | menu | action | libellé | ordre | actif |
'administrateur' | 'accueil' | 'gestionUtilisateurs' | 'Gestion des utilisateurs' | 1 | vrai |
'administrateur' | 'accueil' | 'gestionClasses' | 'Gestion des classes' | 2 | vrai |
'direction' | 'accueil' | 'consultationNotes' | 'ConsultationNotes' | 1 | vrai |
'vie scolaire' | 'accueil' | 'gestionAbsences' | 'Gestion des absences' | 1 | vrai |
'vie scolaire' | 'accueil' | 'gestionEleves' | 'Gestion des élèves' | 2 | vrai |
'vie scolaire' | 'accueil' | 'gestionEnseignants' | 'Gestion des enseignants' | 3 | vrai |
'enseignant' | 'accueil' | 'saisieNotes' | 'Saisie de notes' | 1 | vrai |
'enseignant' | 'accueil' | 'editions' | 'Editions' | 2 | vrai |
'enseignant' | 'editions' | 'editionsSyntheses' | 'Editions de synthèse' | 1 | vrai |
'enseignant' | 'editions' | 'editionsBulletins' | 'Editions de bulletins' | 2 | vrai |
On remarque que cette structure permet de définir des menus et des sous-menus comme on le souhaite et donc de faciliter la maintenance de l'application, ajouter une fonctionnalité ne nécessite pas la relecture de tout le code pour refaire le menu, le menu sera modifié dynamiquement par l'ajout d'un élément dans la base.
Mise en place
Pour utiliser la structure créée, on utilise un fichier "index.php" qui doit définir le type de l'utilisateur et à partir de cela lui afficher le menu correspondant à l'aide d'une fonction menu :function menu($menu){ global $type; $query="select action,libelle from menu where menu='$menu' and type=$type and actif=1 and ordre>0 order by ordre"; $result=mysql_query($query); $nbCaracteres=0; if(mysql_num_rows($result)>0){ echo "<div id=\\"menu\\">\\n"; echo " <table border=0>\\n"; echo " <tr>\\n"; while($row=mysql_fetch_row($result)){ echo " <td>"; echo "<a href=\\"./.?action=$row[0]\\">stripslashes($row[1])</a>; $nbCaracteres = $nbCaracteres + strlen($row[1]); echo " </td>\\n"; } echo " </tr>\\n"; echo " </table>\\n"; } }
un switch permet d'amener l'utilisateur sur l'élément souhaité selon la valeur de la variable $action.