4D v16.3

Exécuter des scripts PHP dans 4D

Accueil

 
4D v16.3
PHP
Exécuter des scripts PHP dans 4D

Exécuter des scripts PHP dans 4D  


 

 

4D permet d’exécuter directement des scripts PHP, donnant ainsi accès à toute la richesse des librairies utilitaires disponibles via PHP. Ces librairies fournissent en particulier des fonctions de :

  • chiffrage (MD5) et hachage,
  • manipulation des fichiers ZIP,
  • manipulation d’images,
  • accès LDAP,
  • accès COM (pilotage des documents MS Office), etc.

Cette liste n’est pas exhaustive. Pour une liste complète des modules PHP disponibles par défaut avec 4D, reportez-vous à la section Prise en charge des modules PHP. A noter également qu’il est possible d’installer des modules personnalisés supplémentaires.

Pour exécuter un script ou une fonction PHP, vous devez utiliser la commande PHP Execute. Par défaut, 4D inclut la version 5.4.11 de PHP. Les scripts exécutés doivent être compatibles avec cette version et les modules installés. 

Pour une description complète des commandes et de la syntaxe PHP, veuillez vous référer à l’abondante documentation PHP disponible sur Internet. A titre d’exemple, voici des adresses de sites de référence :
http://fr.php.net/manual/fr/
http://php.developpez.com/
http://www.php.fr/
http://www.phpfrance.com/

4D fournit un interpréteur PHP compilé en FastCGI, protocole de communication de type client-serveur entre une application et un interpréteur PHP. 

L’interpréteur PHP pilote un ensemble de process d’exécution système appelés "process enfants". Ces process sont dédiés au traitement des requêtes adressées par 4D. L’exécution des requêtes est synchrone. Pour des raisons d’optimisation, par défaut jusqu’à cinq process enfants peuvent être exécutés simultanément (ce nombre est modifiable via les Propriétés de la base ou la commande SET DATABASE PARAMETER). Sous Mac OS, ces process sont lancés à la première requête et sont conservés en permanence par l’interpréteur PHP. Sous Windows, 4D crée les process en fonction des besoins et les recycle si nécessaire. 4D prend automatiquement en charge la gestion des process de l’interpréteur PHP fourni par défaut (lancement et fermeture). 

Note : Si le programme 4D quitte inopinément alors que des process PHP enfants sont encore en activité, vous devrez les supprimer manuellement via la fenêtre de gestion des process du système. 

Le schéma suivant illustre l’architecture 4D/PHP de 4D :

Cette architecture fonctionne avec un système de requêtes internes envoyées par 4D à une adresse TCP prédéfinie (adresse IP et numéro de port). Si nécessaire, par exemple si plusieurs interpréteurs PHP sont exécutés sur la même machine, cette adresse peut être modifiée via les Propriétés de la base ou la commande SET DATABASE PARAMETER.

Attention : Si vous lancez deux applications 4D sur la même machine et exécutez sur chacune d’elles des instructions PHP (via la commande PHP Execute), vous devez impérativement modifier les ports d’écoute de l’interpréteur FastCGI PHP afin qu’ils soient différents pour chaque application. Sinon, l'exécution des instructions PHP pourra échouer de façon aléatoire, voire bloquer l'application 4D.

Vous pouvez choisir d’utiliser un autre interpréteur PHP que celui fourni par 4D. Ce principe vous permet de conserver un même interpréteur PHP même en cas de mise à jour de 4D. En outre, il vous permet d'installer tous les modules personnalisés que vous souhaitez -- en effet, il n’est pas possible d’utiliser un fichier php.ini personnalisé avec l’interpréteur inclus de 4D. Pour utiliser des options de configurations de php autres que celles fournies par défaut, vous devez gérer un interpréteur externe.

Un interpréteur PHP personnalisé doit respecter deux conditions :

  • il doit être compilé en fastCGI,
  • il doit être présent sur la même machine que 4D.

Pour utiliser un interpréteur PHP personnalisé, il vous suffit de le configurer de manière à ce qu’il écoute à une adresse et un port TCP spécifiques et d’indiquer à 4D de ne pas activer l’interpréteur interne. Ces paramètres peuvent être définis soit via les Propriétés de la base, soit pour la session via la commande SET DATABASE PARAMETER. Bien entendu, dans ce cas vous devez gérer vous-même le démarrage et le fonctionnement de l’interpréteur. 

Le fichier d’initialisation php.ini personnalisé doit être placé dans le dossier Resources de la base. Le fichier php.ini permet notamment de déclarer l’emplacement des extensions PHP. Si ce fichier n’est pas présent lors du premier appel, 4D le crée avec les options de configuration adaptées.

Le fichier php.ini de l’interpréteur externe doit contenir les entrées suivantes :

  • auto_prepend_file qui fournit le chemin d’accès complet au script utilitaire 4D_Execute_PHP.php. Ce script se trouve dans [application 4D]Resources/php/Windows ou /Mac. En l’absence de cette entrée, seuls les scripts entiers peuvent être exécutés : l’appel d’une routine à l’intérieur d’un script ne fonctionnera pas.
  • display_errors fixé à "stderr" afin que 4D puisse être informé en cas d’erreur lors de l’exécution de code PHP. Exemple :
    ; stderr - Afficher les erreurs vers STDERR (affecte uniquement les CGI/CLI)
    ; Pour diriger les erreurs vers STDERR pour les CGI/CLI:
    display_errors = "stderr"

Pour plus d’informations sur la configuration des fichiers php.ini personnalisés, veuillez consulter les commentaires placés dans le fichier php.ini fourni par 4D.



Voir aussi  

PHP Execute

 
PROPRIÉTÉS 

Produit : 4D
Thème : PHP

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)