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:
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.