> Tech > Dossier System i : RPG sur le Web : La méthode PHP (3/3)

Dossier System i : RPG sur le Web : La méthode PHP (3/3)

Tech - Par Tony Cairns - Publié le 09 novembre 2010
email

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.

Dossier System i : RPG sur le Web : La méthode PHP (3/3)

Une fois que nous avons débogué le code de session, de contrôle et de vue de notre application PHP en utilisant les variables globales PHP génériques $_GET, $_DS, $_SESSION et $_POST, il devient beaucoup plus facile d’ajouter le modèle de base de données. En suivant le profil des variables globales PHP, nous utiliserons une matrice de modèle global $_M pour fournir la base de données, l’ID utilisateur et le mot de passe pour nos interactions avec le modèle de base de données (config.php). Si vous voulez que l’administrateur de l’application puisse changer les valeurs par défaut d’une application PHP, vous pouvez utiliser une configuration d’édition du genre config.php.

Toutes les interactions de modèle db2 dans l’application Acme sont similaires aux procédures stockées. Toutes les procédures stockées du modèle db2 ont des paramètres d’entrée et produisent un jeu de résultats. Par conséquent, nous pouvons utiliser des fonctions PHP courantes pour appeler des procédures stockées et extraire les résultats. En utilisant une simple concaténation de chaîne PHP ($p.="parm1, parm2"), nous pouvons construire des appels de procédures stockées pour db2_exec(), ce qui nous donne beaucoup moins de code spécifique à ibm_db2 disséminé dans tout le modèle.

En utilisant une technique de coding courante pour db2_exec(), nous pouvons écrire un code d’appel plus simple vers les procédures stockées en spécifiant le type de données dans une matrice ($types) et la matrice de valeurs ($values). Nous fournissons aussi une routine d’erreur simple pour se rappeler de la dernière erreur en gardant une variable $_ERROR globale dans le modèle. Quand nos programmes de vue demandent control ORDER_error() pour la dernière erreur, model_ORDER_error() fournira simplement
en retour le texte de $_ERROR[‘last’].

Astuce : Généralement, je n’utilise pas db2_prepare(), db2_bind_param(), et db2_execute() parce que PHP a de remarquables possibilités de manipulation de chaîne pour la substitution de paramètres en entrée seulement. En outre, je conseille fortement d’utiliser des jeux de résultats pour la sortie de procédures stockées (application Acme) parce qu’on rencontre moins d’anomalies PHP i5/OS complexes en présence de bases de données EBCDIC (sans tenir compte des PTF db2 futurs). Enfin, l’API db_exec() est généralement plus rapide pour la plupart des tâches présentes dans le job Apache/PHP stateless.

Téléchargez cette ressource

Livre blanc Sécurité et Stockage des documents

Livre blanc Sécurité et Stockage des documents

Découvrez dans ce livre blanc Kyocera les outils logiciels qui permettent une approche holistique et efficace de la collecte, du stockage, de la gestion et de la sécurisation des documents en entreprise.

Tech - Par Tony Cairns - Publié le 09 novembre 2010