Contrôlez directement la programmation de votre application Web.
Cet article démontre quelques techniques simples de programmation PHP pour offrir une interface Web à une classique application de saisie de commandes. Vous apprendrez à déployer des scripts PHP non orientés objet traditionnels qui interagissent avec les procédures stockées RPG de l’application de saisie de commandes Acme servant d’exemple.
Chaque fois que j’écris la communication base de données PHP pour mon code, j’essaie de coder les mêmes fonctions avec les mêmes paramètres. Ainsi, si je veux changer de base de données ou simplement coder en dur des valeurs pour le test, il me suffit de le remplacer par un autre module PHP qui fournit les mêmes procédures (par exemple, model_ db2.php, model_mysql.php).
L’application Acme PHP applique cette technique dans le module control.php pour appeler des model.php(s) spécifiques à la base de données.
Les fonctions présentes dans control.php ne prennent pas de paramètres parce que toutes les données sont contenues dans une matrice $_DS globale. Normalement, toutes les variables à l’intérieur d’une fonction PHP sont locales à la fonction et ne peuvent pas être vues en dehors des crochets de fonction. Pour être sûr que la matrice $_DS globale est utilisée, nous devons la déclarer avec le mot-clé « global» dans chaque fonction. Les données de la session $_DS de matrice globale de l’application Acme PHP peuvent être sauvegardées et restaurées dans le fichier de session facilement, au fur et à mesure que des données sont ajoutées dans chaque fonction appelée.
Vues PHP pour HTML
J’ai modifié légèrement le HTML Acme original pour inclure un « idiome » de coding PHP courant pour réafficher les champs d’entrée de données sur chaque transition d’écran. Les petits ajouts du script PHP permettent au formulaire HTML de réafficher les éventuelles erreurs de saisie des clients ou des articles ajoutés dans la commande, entre les trajets du serveur au navigateur. PHP fournit la matrice globale $_POST afin que notre programme puisse voir tous les champs d’entrée/sortie nommés dans le formulaire HTML. Le nom d’index associatif de toute variable de matrice $_POST sera le même que l’élément HTML (name="shipname").
Dans le HTML des articles de commande, nous devons répéter plusieurs fois l’élément de formulaire d’article de commande. C’est pourquoi j’ai créé une variable PHP $template pour le format HTML de base et utilisé une simple substitution de chaîne pour remplir avec de bonnes données. Le code PHP recherche &1 et le remplace par le nom du serveur, recherche &2 et le remplace par la variable « msg », et ainsi de suite (figure 8). Après avoir modifié le HTML du modèle Acme, nous l’incluons simplement dans chacun des modules PHP de vue.
L’expérimentation Acme vise à éliminer les paillettes de HTML et à parler des techniques de coding PHP.
Cependant, il est probable que le modèle HTML de saisie de commandes Acme comporte quelques mauvaises pratiques à éviter dans le code de production.
Premièrement, ne codez pas en dur des attributs HTML tels que color, font, align et background. C’est le rôle des feuilles de style. Je recommande CSS (Cascading Style Sheet). CSS vous permet de changer le décor de gestion HTML en fonction des souhaits du client, sans changer le HTML, même au niveau utilisateur individuel (Sylvie aime le bleu. Lise aime le vert. Quant aux programmeurs Web, ils ne comptent pas).
Deuxièmement, le modèle HTML pour le ou les formulaires d’articles de commande est un cauchemar du point de vue du facteur humain. (Avertissement : l’usage de l’écran peut provoquer anxiété, crise cardiaque, ou infarctus.) Je recommande donc un formulaire HTML unique semblable à une feuille de calcul avec des boutons OK, Cancel, More et Help qui s’appliqueront à tout le formulaire.
Téléchargez cette ressource
Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental
Tech - Par
Tony Cairns - Publié le 27 octobre 2010