4D v13.4

Prise en charge des modules PHP

Accueil

 
4D v13.4
PHP
Prise en charge des modules PHP

Prise en charge des modules PHP  


 

 

Cette annexe détaille l’implémentation des modules PHP dans 4D. Les sujets suivants sont abordés :

  • liste des modules standard PHP fournis par défaut avec l’interpréteur PHP de 4D
  • liste des modules standard PHP non retenus par 4D,
  • instructions d’installation de modules supplémentaires.

Le tableau suivant détaille les modules PHP fournis par défaut avec 4D.

NomSite WebDescription
BCMathhttp://php.net/bcCalculateur binaire qui prend en charge des nombres de n’importe quelle taille et précision représentés sous forme de chaînes.
Exemple :
 C_ENTIER LONG($valeur;$resultat)
 $valeur:=4
 $ok:=PHP Executer("";"bcpow";$resultat;$valeur;3)
Calendarhttp://php.net/calendarEnsemble de fonctions simplifiant la conversion entre les différents formats de calendriers. Se base sur le Jour Julien.
Exemple :
 C_ENTIER LONG($NumberOfDays)
 $ok:=PHP Executer("";"cal_days_in_month";$NumberOfDays;1;2;2010)
Ctypehttp://php.net/ctypeFonctions vérifiant si un caractère ou une chaîne appartient à une certaine classe de caractères, suivant la configuration locale courante
Exemple :
  // Vérifier que tous les caractères d'une chaîne sont des signes de ponctuation
 C_TEXTE($maChaine)
 $maChaine:=",.;/"
 $ok:=PHP Executer("";"ctype_punct";$isPunct;$maChaine)
Date and Timehttp://php.net/datetimeRécupération de la date et de l'heure depuis le serveur où le script PHP s'exécute
Exemple :
  //calcul de l’heure du lever du soleil à Lisbonne, Portugal
  //Latitude: 38.4 Nord
  //Longitude: 9 Ouest
  //Zénith ~= 90
  //Décalage: +1 GMT
 C_HEURE($SunriseTime)
 $ok:=PHP Executer("";"date_sunrise";$SunriseTime;0;1;38,41;-9;90;1)
DOM (Document Object Model)http://php.net/domUtilisation de documents XML via l'API DOM de PHP 5
Exifhttp://php.net/exifTravail avec les méta-données des images.
Fileinfo(*)http://php.net/fileinfoDétection du type de contenu et de l'encodage d'un fichier.
Filterhttp://php.net/filterValider et filtrer les données issues de source non sécurisée, comme les entrées des utilisateurs.
Exemple :
 C_ENTIER LONG($filterId)
 C_TEXTE($result)
 $ok:=PHP Executer("";"filter_id";$filterId;"validate_email")
 $ok:=PHP Executer("";"filter_var";$result;"hop@123.com";$filterId)
FTP (File Transfert Protocol)http://php.net/ftpAccès détaillé à un serveur FTP
Hashhttp://php.net/hashMoteur d'empreinte numérique. Permet le traitement direct ou incrémental de message de grandeur arbitraire en utilisant une variété d'algorithmes
Exemple :
 C_TEXTE($md5Result)
 $ok:=PHP Executer("";"md5";$md5Result;"ceci est ma chaîne a hacher")
GD (Graphics Draw) Libraryhttp://php.net/gdManipulation d’images
Iconvhttp://php.net/iconvConversion de fichiers entre divers jeux de caractères
JSON (JavaScript Object Notation)http://php.net/jsonImplémentation du format d'échange de données JSON
LDAPhttp://php.net/ldapLDAP est un protocole d’accès aux "serveurs de dossiers" stockant les informations sous forme d'arborescence
LibXMLhttp://php.net/libxmlLibrairie de fonctions et constantes XML
Multibyte Stringhttp://php.net/mbstringEnsemble de fonctions de manipulation de chaînes qui vous permet de travailler avec les encodages multi-octets ou de traduire des jeux de caractères.
OpenSSLhttp://php.net/opensslUtilisation des fonctions de OpenSSL pour générer et vérifier les signatures, sceller (chiffrer) et ouvrir (déchiffrer) les données.
PCRE (Perl Compatible Regular Expressions)http://php.net/pcreEnsemble de fonctions qui implémentent les expressions rationnelles en utilisant la même syntaxe et sémantique que Perl 5
Exemple :
  //Cet exemple supprime les espaces superflus d’une chaîne.
 C_TEXTE($maChaine)
 $maChaine:="foo       o        bar"
 PHP Executer("";"preg_replace";$maChaine;"/\\s\\s+/";" ";$maChaine)
 ALERTE($maChaine)
  //La chaine contient maintenant  'foo o bar' sans espaces dupliqués
PDO (PHP Data Objects)http://php.net/pdoInterface d’accès à une base de données. Nécessite un driver PDO spécifique à la base de données.
PDO_SQLITEhttp://php.net/pdo_sqlitePilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données SQLite 3.
Reflectionhttp://php.net/reflectionAPI de réflexion complète qui permet de faire du reverse-engineering sur les classes, les interfaces, les fonctions, les méthodes, les extensions
Phar (PHP Archive)http://php.net/pharPermet d’inclure une application PHP complète dans un fichier unique appelé "phar" (PHP Archive) pour faciliter son installation et sa configuration
Sessionhttp://php.net/sessionPrise en charge de sessions PHP
Exemple :
Les sessions sont utilisées dans les applications Web pour conserver le contexte entre chaque requête. Lorsque vous appelez PHP Executer dans 4D, le script PHP peut démarrer une session et stocker tout ce qui est utile à conserver comme contexte dans le tableau associé $_SESSION. Si un script PHP utilise des sessions vous devez obtenir l’ID de session retourné par PHP à l’aide de la commande PHP LIRE REPONSE COMPLETE et le définir avant chaque appel à PHP Executer à l’aide de la commande FIXER VARIABLE ENVIRONMENT
  // Méthode "PHP Exécuter avec contexte"
 Si(<>PHP_Session#"")
    FIXER VARIABLE ENVIRONNEMENT("HTTP_COOKIE";<>PHP_Session)
 Fin de si
 Si(PHP Executer($1))
    PHP LIRE REPONSE COMPLETE($0;$errorInfos;$errorValues;$headerFields;$headerValues)
    $idx:=Chercher dans tableau($headerFields;"Set-Cookie")
    Si($idx>0)
       <>PHP_Session:=$headerValues{$idx}
    Fin de si
 Fin de si
SimpleXMLhttp://php.net/simpleXMLOutils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux
Socketshttp://php.net/socketsImplémentation d’une interface bas niveau avec les fonctions de communication par socket basées sur les sockets BSD et fournit la possibilité de fonctionner aussi bien sous forme de client que de serveur.
SPL (Standard PHP Library)http://php.net/splCollection d’interfaces et de classes utilitaires créés pour résoudre les problèmes usuels.
SQLitehttp://php.net/sqliteExtension pour le moteur de base de données SQLite. Ce moteur peut être embarqué.
SQLite3http://php.net/sqlite3Support pour les bases de données SQLite version 3
Tokenizerhttp://php.net/tokenizerFonctions vous permettant d’écrire vos propres outils PHP d'analyse ou de modifications sans avoir à vous soucier de la spécification du langage au niveau lexical
XML (eXtensible Markup Language)http://php.net/xmlAnalyse des documents XML
XMLreaderhttp://php.net/xmlreaderAnalyseur XML Pull
XMLwriterhttp://php.net/xmlwriterGénération de flux et de fichiers au format XML
Zlibhttp://php.net/zlibLecture et écriture de fichiers compressés gzip (.gz)
Exemple :
 WEB LIRE ENTETE HTTP($names;$values)
 $pos:=Chercher dans tableau($names;"Accept-Encoding")
 Si($pos>0)
    Au cas ou
       :(Position($values{$pos};"gzip")>0)
          WEB FIXER ENTETE HTTP("Content-Encoding: gzip")
          PHP Executer("";"gzencode";$html;$html)
       :(Position($values{$pos};"deflate")>0)
          WEB FIXER ENTETE HTTP("Content-Encoding: deflate")
          PHP Executer("";"gzdeflate";$html;$html)
    Fin de cas
 Fin de si
 WEB ENVOYER TEXTE($html)
Ziphttp://php.net/zipLecture et écriture des archives compressées ZIP et des fichiers s’y trouvant

(*) Dans la version actuelle de 4D, ces modules ne sont pas disponibles sous Windows.

Pour des raisons structurelles, les modules PHP suivants ne sont disponibles que sur la plate-forme Windows.

NomSite WebDescription
COM & .NEThttp://php.net/comCOM (Component Object Model) est l'une des méthodes les plus utilisées pour faire communiquer des applications et des composants sur les plates-formes Windows. En outre, 4D prend en charge l’instanciation et la création d’assemblages .Net via la couche COM.
ODBC (Open DataBase Connectivity)http://php.net/odbcEn plus du support de l'ODBC standard, l'ODBC unifié de PHP vous donne accès à diverses bases de données qui ont emprunté la sémantique des API ODBC pour implémenter leur propres API.
WDDX (Web Distributed Data eXchange)http://php.net/wddxFacilite les échanges de données inter-applications Web via le Web, quelle que soit la plate-forme

Les modules PHP suivants n’ont pas été implémentés dans 4D v12. La colonne de droite fournit la raison de cette non-implémentation :

NomSite WebCause - Solution alternative
Mimetypehttp://php.net/mime-magicObsolète (Deprecated) - Utiliser Fileinfo
POSIX (Portable Operating System Interface)http://php.net/posixObsolète (Deprecated)
Regular Expression (POSIX Extended)http://php.net/regexObsolète (Deprecated) - Utiliser PCRE
Crackhttp://php.net/crackLicence restrictive
ffmpeghttp://ffmpeg-php.sourceforge.net/Licence restrictive - Utiliser ffmpeg en ligne de commande avec LANCER PROCESS EXTERNE
Image Magickhttp://php.net/manual/book.imagick.phpLicence restrictive - Utiliser GD 2
IMAP (Internet Message Access Protocol)http://php.net/imapLicence restrictive - Utiliser le plug-in intégré 4D Internet Commands
PDF (Portable Document Format)http://php.net/pdfLicence restrictive - Utiliser Haru PDF
Mysqlnd (MySQL Native Driver)http://dev.mysql.com/downloads/connector/php-mysqlnd/Non pertinent dans l’environnement 4D
Phar (PHP Archive)http://php.net/pharNon pertinent dans l’environnement 4D

L’interpréteur PHP vous laisse la possibilité d’installer des modules supplémentaires. Ce principe vous permet d’accéder à des fonctionnalités spécifiques non présentes par défaut. Vous pouvez installer plusieurs types d’extensions :

  • extensions PECL (PHP Extension Community Library)
  • extensions du framework PEAR (PHP Extension and Application Repository)
  • extensions du framework Zend
  • extensions du framework Symphony
  • extensions du framework JELIX
  • composants eZ

Les informations d’installation pour chaque type d’extension sont fournies ci-dessous.

Note : Les caractéristiques de la version de PHP fournie avec 4D v12 sont les suivantes :

  • Version 5.3.2
  • Sous Windows et Mac OS,  compilation 32 bits et en mode "thread-safe"

Fichier "php.ini" : Le fichier "php.ini" à modifier (cf. ci-dessous) peut être situé soit dans le dossier Resources de l'application 4D (fichier par défaut) ou dans le dossier de préférences de la base (fichier personnalisé). A ce sujet, reportez-vous à la section Exécuter des scripts PHP dans 4D

Site Web : http://pecl.php.net
Pour ajouter des extensions PECL :

  1. Téléchargez et construisez l’extension PECL souhaitée.
    OU
    Prenez l’extension déjà construite depuis un package binaire Windows PHP 5.3 VC9 Non Thread Safe (http://windows.php.net/download/#php-5.3-nts-VC9-x86)
  2. Ajoutez l’extension dans le dossier des extensions. 
  3. Activez l’extension dans le fichier "php.ini".

Attention : si les extensions disponibles sur le site Web PECL sont sous licence PHP qui n’est pas restrictive, certaines peuvent nécessiter des librairies qui, elles, ont une licence plus contraignante.

Des extensions PHP sont disponibles sur d’autres sites Web, mais elles ne bénéficient pas dans ce cas de la garantie de sécurité apportée par la validation du PHP Group.

Site Web : http://pear.php.net
PEAR est un framework entièrement orienté objet.
Pour ajouter des extensions PEAR :

  1. Téléchargez (http://pear.php.net/package/PEAR/download) et décompactez le package PEAR dans un dossier nommé "pear".
  2. Ajoutez ce dossier "pear" dans le "include_path" défini dans le fichier "php.ini".
  3. Téléchargez et décompactez tout package PEAR dans ce dossier.

  1. Téléchargez (http://framework.zend.com/download/latest) et décompactez le framework Zend dans un dossier nommé "zend". 
  2. Ajoutez ce dossier "zend" dans le "include_path" défini dans le fichier "php.ini". 
  3. Lisez la documentation des composants du framework Zend : http://framework.zend.com/manual/en

Site Web : http://www.symfony-project.org
Le framework Symphony est structuré de manière à être utilisé en tant qu’application Web accompagnée de son contrôleur Web. 

  1. Téléchargez et décompactez le framework source ainsi que le bac à sable depuis l’adresse http://www.symfony-project.org/installation/1_2.

  1. Téléchargez (http://jelix.org/articles/en/download/stable) et décompactez le framework JELIX.
  2. Ajoutez le dossier "jelix" résultant dans le "include_path" défini dans le fichier "php.ini".
  3. Lisez la documentation des composants du framework JELIX : http://jelix.org/articles/en/manual-1.1/components

  1. Téléchargez (http://www.ezcomponents.org/download) et décompactez les composants eZ dans un dossier "ez". 
  2. Ajoutez le dossier "ez" dans le "include_path" défini dans le fichier "php.ini". 
  3. Lisez la documentation des composants eZ : http://www.ezcomponents.org/docs/api/latest

 
PROPRIÉTÉS 

Produit : 4D
Thème : PHP
Nom intl. : PHP modules support