Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v20 R7
PHP
Ejecutar scripts PHP en 4D

Ejecutar scripts PHP en 4D  


 

 

4D permite ejecutar directamente los scripts PHP. Esta posibilidad da acceso a valiosas librerías utilitarias disponibles vía PHP. Estas librerías ofrecen en particular funciones de (esta lista no es exhaustiva)::

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

Para ejecutar un script o una función PHP, utilice el comando PHP Execute o system workers.

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/

Para usar PHP con 4D, debe utilizar un intérprete PHP. El intérprete PHP debe respetar dos condiciones:

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

Debe configurar el intérprete para que escuche una dirección y un puerto TCP específicos. Estos parámetros pueden ser especificados a través de la configuración de la base de datos, o para la sesión a través del comando SET DATABASE PARAMETER. Por supuesto, usted mismo debe gestionar el arranque y el funcionamiento del intérprete.

Para descargar e instalar un intérprete PHP, tiene dos posibilidades:

  • Descargar PHP desde el sitio oficial PHP. En Windows, puede seleccionar su versión. En macOS, tienes que compilar su propia versión, o encontrar una versión precompilada en otros sitios.
  • Descargar PHP para macOS y Windows desde la página de descarga de productos 4D. Tenga en cuenta que esta versión, utilizada en 4D hasta 4D v20 R2, ya no tiene mantenimiento.

Para obtener información detallada sobre la descarga, compilación e instalación de PHP en Windows o macOS, consulte la siguiente entrada del blog de 4D: Desaparición de los comandos PHP y eliminación del intérprete PHP integrado en 4D.

El archivo de inicialización php.ini se coloca en la carpeta Resources del proyecto. El archivo php.ini puede ser usado, más particularmente, para declarar la ubicación de las extensiones PHP. Si este archivo no está presente durante la primera llamada a PHP, 4D lo creará con las opciones de configuración por defecto.

Si no usa el archivo php.ini por defecto de 4D, debe asegurarse de que el php.ini que use contenga las siguientes entradas:

  • auto_prepend_file que proporciona la ruta completa al script utilitario 4D_Execute_PHP.php. Este script se encuentra en [4D application]Resources/php/Windows o /Mac. Sin esta entrada, sólo se pueden ejecutar scripts completos: las llamadas a una rutina dentro de un script no funcionarán.
  • display_errors define un "stderr" para que 4D pueda ser informado cuando ocurra un error durante la ejecución del código PHP. Ejemplo:
    ; stderr - Display the errors to STDERR (only affects the CGI/CLI)
    ; To direct the errors to STDERR for the CGI/CLI:
    display_errors = "stderr"

Note que la versión actual en el sitio web oficial de PHP no carga el paquete mbstring por defecto (el cual es requerido por 4D). Si lo usa, podría necesitar agregar estas líneas al archivo php.ini:

extension_dir = "./ext/"
extension=mbstring

Nota sobre el tiempo de espera

Si la duración del procesamiento PHP es relativamente larga (más de 30 segundos), por defecto se devolverá un error 'timeout' en 4D y el procesamiento fallará. En este caso, puede ajustar el tiempo de espera por defecto para asignar más tiempo a la ejecución de PHP. Hay dos formas de hacer esto:

  • definiendo la variable max_execution_time en el archivo php.ini (pase un valor en segundos). Atención: este ajuste afecta a todos los scripts.
  • llamando al comando set_time_limit(nbSec) en el script de ejecución PHP que está realizando el procesamiento largo. Pase la duración máxima asignada a la ejecución del script PHP en nbSec. Recomendamos utilizar este ajuste ya que sólo afecta a este script. Normalmente, por razones de seguridad, es preferible mantener un valor de tiempo de espera inferior para los scripts PHP.



Ver también 

PHP Execute

 
PROPIEDADES 

Producto: 4D
Tema: PHP

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Modificado: 4D v20 R3

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v20 R7)