4D v13.4

Soporte de módulos PHP

Inicio

 
4D v13.4
PHP
Soporte de módulos PHP

Soporte de módulos PHP  


 

 

Este anexo detalla la implementación de los módulos PHP en 4D. Se tratan los siguientes temas:

  • Lista de módulos estándar PHP ofrecidos por defecto con el intérprete PHP de 4D
  • Lista de módulos estándar PHP no retenidos por 4D
  • Instrucciones de instalación de módulos adicionales.

La siguiente tabla detalla los módulos PHP ofrecidos por defecto con 4D.

NombreSitio webDescripción
BCMathhttp://php.net/bcCalculadora binaria que maneja números de cualquier tamaño y precisión representados como cadenas.
Ejemplo:
 C_LONGINT($valor;$result)
 $valor:=4
 $ok:=PHP Execute("";"bcpow";$result;$valor;3)
Calendarhttp://php.net/calendarConjunto de funciones que simplifican la conversión entre los diferentes formatos de calendarios. Basado en Julian Day Count.
Ejemplo:
 C_LONGINT($NumeroDeDias)
 $ok:=PHP Execute("";"cal_days_in_month";$NumeroDeDias;1;2;2010)
Ctypehttp://php.net/ctypeFunciones que verifican si un carácter o una cadena pertenecen a una cierta clase de caracteres, dependiendo de la configuración local actual
[tab/]Ejemplo:
  // Verificar que todos los caracteres de la cadena sean signos de puntuación
 C_TEXT($myString)
 $myString:=",.;/"
 $ok:=PHP Execute("";"ctype_punct";$isPunct;$myString)
Date and Timehttp://php.net/datetimeRecuperación de la fecha y hora desde el servidor donde el script PHP se ejecuta
Ejemplo:
  //Cálculo de la hora del amanecer en Lisboa, Portugal
  //Latitud: 38.4 North
  //Longitud: 9 West
  //Zenith ~= 90
  //Time-lag: +1 GMT
 C_TIME($SunriseTime)
 $ok:=PHP Execute("";"date_sunrise";$SunriseTime;0;1;38,41;-9;90;1)
DOM (Document Object Model)http://php.net/domUso de documentos XML vía el API DOM API de PHP 5
Exifhttp://php.net/exifTrabaja con los metadatos de las imágenes.
Fileinfo(*)http://php.net/fileinfoDetección del tipo de contenido y de la codificación de un archivo.
Filterhttp://php.net/filterValidar y filtrar los datos de una fuente no segura, como las entradas de los usuarios.
Ejemplo:
 C_LONGINT($filterId)
 C_TEXT($result)
 $ok:=PHP Execute("";"filter_id";$filterId;"validate_email")
 $ok:=PHP Execute("";"filter_var";$result;"hop@123.com";$filterId)
FTP (File Transfert Protocol)http://php.net/ftpAcceso detallado a un servidor FTP
Hashhttp://php.net/hashMotor de resumen de mensajes (Message Digest). Permite el procesamiento directo o indirecto del mensaje de longitud arbitrario utilizando una variedad de algoritmos
Ejemplo:
 C_TEXT($md5Result)
 $ok:=PHP Execute("";"md5";$md5Result;"esta es mi cadena a la que se le va a hacer hash")
GD (Graphics Draw) Libraryhttp://php.net/gdManipulación de imágenes
Iconvhttp://php.net/iconvConversión de archivos entre diferentes conjuntos de caracteres
JSON (JavaScript Object Notation)http://php.net/jsonImplementación del formato de intercambio de datos JSON
LDAPhttp://php.net/ldapLDAP es un protocolo de acceso a los "servidores de carpetas" que almacenan la información en forma de diagrama de árbol
LibXMLhttp://php.net/libxmlLibrería de funciones y constantes XML
Multibyte Stringhttp://php.net/mbstringConjunto de funciones de manipulación de cadenas que permite trabajar con las codificaciones multi-bytes o convertir los conjuntos de caracteres.
OpenSSLhttp://php.net/opensslUso de las funciones de OpenSSL para generar y verificar las firmas, cifrar y descifrar los datos.
PCRE (Perl Compatible Regular Expressions)http://php.net/pcreConjunto de funciones que implementan las expresiones racionales utilizando la misma sintaxis y semántica que Perl 5
Ejemplo:
  // Este ejemplo remueve los espacios innecesarios de una cadena
 C_TEXT($myString)
 $myString:="foo       o        bar"
 PHP Execute("";"preg_replace";$myString;"/\\s\\s+/";" ";$myString)
 ALERT($myString)
  //La cadena contiene ahora 'foo o bar' sin espacios duplicados
PDO (PHP Data Objects)http://php.net/pdoInterfaz de acceso a una base de datos. Necesita un driver PDO específico a la base de datos.
PDO_SQLITEhttp://php.net/pdo_sqliteDriver que implementa la interfaz de PHP Data Objects (PDO) para autorizar el acceso de PHP a las bases de datos SQLite 3.
Reflectionhttp://php.net/reflectionAPI de reflexión completa que permite reverse-engineering en las clases, las interfaces, las funciones, los métodos, como también las extensiones
Phar (PHP Archive)http://php.net/pharPermite incluir una aplicación PHP completa en un archivo único llamado "phar" (PHP Archive) para facilitar su instalación y su configuración
Sessionhttp://php.net/sessionSoporte de sesiones PHP
Ejemplo:
Las sesiones se utilizan en las aplicaciones web para conservar el contexto entre cada consulta. Cuando usted llama PHP Execute en 4D, el script PHP puede iniciar una sesión y almacenar todo lo que es útil para conservar como contexto en el array asociado $_SESSION. Si un script PHP utiliza las sesiones, debe obtener el ID de sesión devuelto por PHP utilizando el comando PHP GET FULL RESPONSE y definir antes de cada llamada a PHP Execute utilizando el comando SET ENVIRONMENT VARIABLE.
  // Método "PHP Ejecutar con contexto"
 If(<>PHP_Session#"")
    SET ENVIRONMENT VARIABLE("HTTP_COOKIE";<>PHP_Session)
 End if
 If(PHP Execute($1))
    PHP GET FULL RESPONSE($0;$errorInfos;$errorValues;$headerFields;$headerValues)
    $idx:=Find in array($headerFields;"Set-Cookie")
    If($idx>0)
       <>PHP_Session:=$headerValues{$idx}
    End if
 End if
SimpleXMLhttp://php.net/simpleXMLHerramientas muy simples y fáciles de utilizar para convertir de XML a un objeto que puede ser procesado con sus propiedades y los iteradores de arrays
Socketshttp://php.net/socketsImplementación de una interfaz de bajo nivel con las funciones de comunicación por socket basados en los sockets BSD y ofrece la posibilidad de funcionar también como servidor socket y cliente.
SPL (Standard PHP Library)http://php.net/splColección de interfaces y de clases utilitarias creadas para resolver problemas estándar.
SQLitehttp://php.net/sqliteExtensión para el motor de base de datos SQLite. Este motor puede estar embebido.
SQLite3http://php.net/sqlite3Soporte para las bases de datos SQLite versión 3
Tokenizerhttp://php.net/tokenizerFunciones que permiten escribir sus propias herramientas PHP de análisis o de modificaciones sin tener que tratar con la especificación del lenguaje al nivel lexical
XML (eXtensible Markup Language)http://php.net/xmlAnálisis de los documentos XML
XMLreaderhttp://php.net/xmlreaderAnalizador XML Pull
XMLwriterhttp://php.net/xmlwriterGeneración del flujo y de los archivos al formato XML
Zlibhttp://php.net/zlibLectura y escritura de archivos comprimidos gzip (.gz)
Ejemplo:
 WEB GET HTTP HEADER($names;$values)
 $pos:=Find in array($names;"Accept-Encoding")
 If($pos>0)
    Case of
       :(Position($values{$pos};"gzip")>0)
          WEB SET HTTP HEADER("Content-Encoding: gzip")
          PHP Execute("";"gzencode";$html;$html)
       :(Position($values{$pos};"deflate")>0)
          WEB SET HTTP HEADER("Content-Encoding: deflate")
          PHP Execute("";"gzdeflate";$html;$html)
    End case
 End if
 WEB SEND TEXT($html)
Ziphttp://php.net/zipLectura y escritura de los archivos comprimidos ZIP y los archivos en él

(*) En la versión actual de 4D, estos módulos no están disponibles bajo Windows

Por razones estructurales, los siguientes módulos PHP sólo están disponibles en la plataforma Windows.

NombreSitio webDescripción
COM & .NEThttp://php.net/comCOM (Component Object Model) es uno de los métodos más utilizados por aplicaciones y componentes para la comunicación en plataformas Windows. Adicionalmente, 4D soporta la ejemplificación y creación de ensambles .Net vía la capa COM.
ODBC (Open DataBase Connectivity)http://php.net/odbcAdemás del soporte del ODBC estándar, el ODBC unificado de PHP le da acceso a varias bases de datos que han tomado prestada la semántica de los API ODBC para implementar sus propios API.
WDDX (Web Distributed Data eXchange)http://php.net/wddxFacilita los intercambios de datos entre aplicaciones web vía la web, sin importar la plataforma

Los siguientes módulos PHP no se han implementado en 4D v12. La columna derecha explica la razón por la cual no se implementó:

NombreSitio webCausa - Solución alternativa
Mimetypehttp://php.net/mime-magicObsoleto - Utilizar Fileinfo
POSIX (Portable Operating System Interface)http://php.net/posixObsoleto
Regular Expression (POSIX Extended)http://php.net/regexObsoleto - Utilizar PCRE
Crackhttp://php.net/crackLicencia restrictiva
ffmpeghttp://ffmpeg-php.sourceforge.net/Licencia restrictiva - Uso ffmpeg en línea de comando con LAUNCH EXTERNAL PROCESS
Image Magickhttp://php.net/manual/book.imagick.phpLicencia restrictiva - Uso GD 2
IMAP (Internet Message Access Protocol)http://php.net/imapLicencia restrictiva - Uso del plug-in integrado 4D Internet Commands
PDF (Portable Document Format)http://php.net/pdfLicencia restrictiva - Utilizar Haru PDF
Mysqlnd (MySQL Native Driver)http://dev.mysql.com/downloads/connector/php-mysqlnd/No pertinente en el entorno 4D
Phar (PHP Archive)http://php.net/pharNo pertinente en el entorno 4D

El intérprete PHP le da la posibilidad de instalar módulos adicionales. Este principio permite acceder a las funcionalidades específicas no presentes por defecto. 
Puede instalar varios tipos de extensiones:

  • extensiones PECL (PHP Extension Community Library)
  • extensiones del framework PEAR (PHP Extension and Application Repository)
  • extensiones del framework Zend
  • extensiones del framework Symphony
  • extensiones del framework JELIX
  • componentes eZ

La información de instalación para cada tipo de extensión se encuentra a continuación.

Nota: las características de la versión de PHP ofrecida con 4D v12 son los siguientes:

  • Versión 5.3.2
  • Bajo Windows y Mac OS,  compilación 32 bits y en modo "thread-safe"
Archivo "php.ini": el archivo "php.ini" a modificar (ver a continuación) puede ubicarse en la carpeta Resources de la aplicación 4D (archivo por defecto) o en la carpeta de preferencias de la base (archivo personalizado). Para mayor información, consulte .

Sitio web: http://pecl.php.net
Para añadir las extensiones PECL:

  1. Descargue y construya la extensión PECL deseada.
    O
    Tome la extensión ya creada desde un paquete binario Windows PHP 5.3 VC9 Non Thread Safe (http://windows.php.net/download/#php-5.3-nts-VC9-x86)
  2. Añada la extensión en la carpeta de las extensiones. 
  3. Active la extensión en el archivo "php.ini".

Atención: si las extensiones disponibles en el sitio web PECL están bajo licencia PHP no restrictiva, algunas pueden necesitar librerías, las cuales, tienen una licencia más restrictiva.

Las extensiones PHP están disponibles en otros sitios web, pero en este caso no tienen la garantía de seguridad ofrecida por la validación del PHP Group.

Sitio web: http://pear.php.net
PEAR es un framework totalmente orientado a objetos.
Para añadir las extensiones PEAR:

  1. Descargue (http://pear.php.net/package/PEAR/download) y descomprima el paquete PEAR en una carpeta llamada "pear".
  2. Añada esta carpeta "pear" en el "include_path" definido en el archivo "php.ini".
  3. Descargue y descomprima todo paquete PEAR en esta carpeta.

  1. Descargue (http://framework.zend.com/download/latest) y descomprima el framework Zend en una carpeta llamada "zend". 
  2. Añada esta carpeta "zend" en el "include_path" especificado en el archivo "php.ini". 
  3. Lea la documentación de los componentes del framework Zend: http://framework.zend.com/manual/en

Sitio web: http://www.symfony-project.org
El framework Symphony está estructurado de manera que se utilice como una aplicación web acompañada de su controlador web. 

  1. Descargue y descomprima el framework fuente así como también el sandbox desde la dirección: http://www.symfony-project.org/installation/1_2.

  1. Descargue (http://jelix.org/articles/en/download/stable) y descomprima el framework JELIX.
  2. Añada la carpeta "jelix" resultante en el "include_path" definida en el archivo "php.ini".
  3. Lea la documentación de los componentes del framework JELIX: http://jelix.org/articles/en/manual-1.1/components

  1. Descargue (http://www.ezcomponents.org/download) y descomprima los componentes eZ en una carpeta "ez".
  2. Añada la carpeta "ez" en el "include_path" definido en el archivo "php.ini".
  3. Lea la documentación de los componentes eZ: http://www.ezcomponents.org/docs/api/latest

 
PROPIEDADES 

Producto: 4D
Tema: PHP