4D v16.3

Ejecutar scripts PHP en 4D

Inicio

 
4D v16.3
PHP
Ejecutar scripts PHP en 4D

Ejecutar scripts PHP en 4D  


 

 

4D v12 permite ejecutar directamente los scripts PHP. Esta nueva posibilidad da acceso a valiosas librerías utilitarias disponibles vía PHP. Estas librerías ofrecen en particular funciones de:

  • cifrado (MD5) y hashing,
  • manipulación de archivos ZIP,
  • manipulación de imágenes,
  • acceso LDAP,
  • acceso COM (control de documentos MS Office), etc.

Esta lista no es exhaustiva. Para una lista completa de los módulos PHP disponibles por defecto con 4D, consulte la sección Soporte de módulos PHP. Note también que es posible instalar módulos personalizados adicionales. 

Para ejecutar un script o una función PHP, debe utilizar el comando PHP Execute. Por defecto, 4D incluye la versión 5.4.11 de PHP. Los scripts ejecutados deben ser compatibles con esta versión y con los módulos instalados.

Para una descripción completa de los comandos y de la sintaxis PHP, consulte la extensa documentación PHP disponible en Internet. Como ejemplo, estas son las direcciones de algunos sitios de referencia:
http://us.php.net/manual/en/
http://phpdeveloper.org/
http://php.start4all.com/

4D ofrece un intérprete PHP compilado en FastCGI, protocolo de comunicación de tipo cliente servidor entre una aplicación y un intérprete PHP. 

El intérprete PHP dirige un conjunto de procesos de ejecución llamado "procesos hijos". Estos procesos están dedicados al procesamiento de las peticiones enviadas por 4D. La ejecución de las peticiones es sincrónica. Por razones de optimización, por defecto hasta cinco procesos hijos pueden correr simultáneamente (este número puede modificarse vía las Propiedades de la base o el comando SET DATABASE PARAMETER). Bajo Mac OS, estos procesos se lanzan a la primera petición y son conservados permanentemente por el intérprete PHP. Bajo Windows, 4D crea los procesos en función de las necesidades y los recicla si es necesario. 4D soporta automáticamente la gestión de los procesos del intérprete PHP ofrecida por defecto (lanzamiento y cierre). 

Nota: si el programa 4D cierra inesperadamente mientras los procesos PHP hijos aún están activos, debe borrarlos manualmente vía la ventana de gestión de procesos del sistema. 

El siguiente diagrama ilustra la arquitectura 4D/PHP de 4D:

Esta arquitectura funciona con un sistema de peticiones internas enviadas por 4D a una dirección TCP predefinida (dirección IP y número de puerto). Si es necesario, por ejemplo si varios intérpretes PHP se ejecutan en la misma máquina, esta dirección puede modificarse vía las Propiedades de la base o vía el comando SET DATABASE PARAMETER.

Atención: si lanza dos aplicaciones 4D en la misma máquina y ejecuta instrucciones PHP en cada una de ellas (vía el comando PHP Execute), es imperativo modificar los puertos receptores del intérprete FastCGI PHP con el fin de utilizar uno diferente para cada aplicación. De lo contrario, la ejecución de las instrucciones PHP puede fallar de manera aleatoria e incluso bloquear la aplicación 4D.

Puede elegir utilizar otro intérprete PHP diferente al ofrecido por 4D. Esto le permite conservar un mismo intérprete PHP incluso si actualiza 4D. Además, le permite instalar todos los módulos personalizados que desee, de hecho, no se puede utilizar un archivo php.ini personalizado con el intérprete incluido en 4D. Para utilizar opciones de configuración de php diferentes a las que se ofrecen por defecto, debe administrar un intérprete externo.

Un intérprete PHP personalizado debe respetar dos condiciones:

  • Debe compilarse en FastCGI,
  • Debe estar en la misma máquina que 4D.

Para utilizar un intérprete PHP personalizado, simplemente debe configurarlo de manera que escuche una dirección y un puerto TCP específicos e indique a 4D no activar el intérprete interno. Estos parámetros pueden especificarse vía las Propiedades de la base o para la sesión vía el comando SET DATABASE PARAMETER. En este caso, debe administrar usted mismo el inicio y funcionamiento del intérprete. 

También puede utilizar un archivo de configuración php.ini personalizado para, por ejemplo, tomar ventaja de los módulos adicionales. El archivo php.ini puede utilizarse particularmente para declarar la ubicación de las extensiones PHP.
El archivo de inicialización php.ini se ubica en la carpeta Resources de la base. Si este archivo no está presente durante la primera llamada, 4D lo creará con las opciones de configuración apropiadas. 

El archivo php.ini del intérprete externo debe contener las siguientes entradas:
  • auto_prepend_file que ofrece la ruta de acceso completa al script utilitario 4D_Execute_PHP.php. Este script se encuentra en [aplicación 4D]Resources/php/Windows o /Mac. Sin esta entrada, sólo los scripts enteros pueden ejecutarse: la llamada de una rutina dentro de un script no funcionará.
  • display_errors fija un "stderr" de manera que 4D pueda estar informado cuando ocurra un error durante la ejecución de código PHP. Ejemplo:
    ; stderr - Mostrar los errores para STDERR (afecta únicamente los CGI/CLI)
    Para dirigir los errores a STDERR para los CGI/CLI:
    display_errors = "stderr"
Para mayor información sobre la configuración de archivos php.ini personalizados, por favor consulte los comentarios que se encuentran en el archivo php.ini suministrado por 4D.



Ver también 

PHP Execute

 
PROPIEDADES 

Producto: 4D
Tema: PHP

 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)