> 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 gratuitement cette ressource

5 clés de supervision Multi Cloud

5 clés de supervision Multi Cloud

A l’heure du Software Defined Everything (SDx) la conception et l’exploitation de logiciels sont plus complexes que jamais, ce nouvel eBook décrit les éléments clés à prendre en compte lors de la transition vers les technologies, les plates-formes et les éléments logiciels modernes afin de tirer tout le potentiel des solutions Multi cloud d'entreprise.

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

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT