4D v16.3

Executar scripts PHP em 4D

Página Inicial

 
4D v16.3
PHP
Executar scripts PHP em 4D

Executar scripts PHP em 4D  


 

 

4D v12 permite executar diretamente os scripts PHP. Esta nova possibilidade dá acesso a valiosas bibliotecas utilitárias disponíveis através PHP. Estas bibliotecas oferecem em particular funções de:

  • criptografado (MD5) e hashing,
  • manipulação de arquivos ZIP,
  • manipulação de imagens,
  • acesso LDAP,
  • acesso COM (controle de documentos MS Office), etc.

Esta lista não é exaustiva. Para uma lista completa dos módulos PHP disponíveis automaticamente com 4D, consulte a seção Assistência aos módulos PHP. Note também que é possível instalar módulos personalizados adicionais. 

Para executar um script ou uma função PHP, deve utilizar o comando PHP Execute. Por padrão, 4D inclui a versão 5.4.11 de PHP. Os scripts executados devem ser compatíveis com esta versão e com os módulos instalados.

Para uma descrição completa dos comandos e da sintaxe PHP, consulte a extensa documentação PHP disponível na Internet. Como exemplo, estas são as direções de alguns sites de referência:
http://us.php.net/manual/en/
http://phpdeveloper.org/
http://php.start4all.com/

4D oferece um intérprete PHP compilado em FastCGI, protocolo de comunicação de tipo cliente servidor entre uma aplicação e um intérprete PHP. 

O intérprete PHP dirige um conjunto de processos de execução chamado "processos filhos". Estes processos estão dedicados ao processamento das petições enviadas por 4D. A execução das petições é anacrônica. Por razões de otimização, o padrão é que podem haver até cinco processos filhos ocorrendo (este número pode ser modificado através das Propriedades do banco de dados ou o comando SET DATABASE PARAMETER). Em Mac OS, estes processos são lançados a primeira petição e são conservados permanentemente pelo intérprete PHP. Em Windows, 4D cria os processos em função das necessidades e os recicla se necessário. 4D suporta automaticamente a gestão dos processos do intérprete PHP oferecida automaticamente (lançamento e fechamento). 

Nota: se o programa 4D fecha inesperadamente enquanto os processos PHP filhos ainda estão ativos, deve apagá-los manualmente com a janela de gestão de processos do sistema. 

O diagrama a seguir ilustra a arquitetura 4D/PHP de 4D:

Esta arquitetura funciona com um sistema de petições internas enviadas por 4D a uma direção TCP pré-definida (direção IP e número de porta). Se for necessário, por exemplo se vários intérpretes PHP são executados na mesma máquina, esta direção pode ser modificada através das Propriedades do banco ou através do comando SET DATABASE PARAMETER.

Atenção: São lançadas duas aplicações 4D na mesma máquina e executa instruções PHP em cada uma delas (através do comando PHP Execute), é imperativo modificar os portos receptores do intérprete FastCGI PHP com o fim de utilizar um diferente para cada aplicação. Caso contrário, a execução das instruções PHP pode falhar de maneira aleatória e inclusive bloquear a aplicação 4D.

Pode escolher utilizar outro intérprete PHP diferente ao oferecido por 4D. Isto lhe permite conservar um mesmo intérprete PHP inclusive se atualizar 4D. Além disso, lhe permite instalar todos os módulos personalizados que deseje, de fato, não pode ser utilizado um arquivo php.ini personalizado com o intérprete incluído em 4D. Para utilizar opções de configuração de php diferentes as que se oferecem por padrão, deve administrar um intérprete externo.

Um intérprete PHP personalizado deve respeitar duas condições:

  • Deve ser compilado em FastCGI,
  • Deve estar na mesma máquina que 4D.

Para utilizar um intérprete PHP personalizado, simplesmente deve configurá-lo de maneira que escute uma direção e um porto TCP específicos e indique a 4D não ativar o intérprete interno. Estes parâmetros podem ser especificado através das Propriedades do banco ou para a sessão através do comando SET DATABASE PARAMETER. Neste caso, deve administrar você mesmo o início e funcionamento do intérprete. 

Também pode utilizar um arquivo de configuração php.ini personalizado para, por exemplo, aproveitar os módulos adicionais. O arquivo php.ini pode ser utilizado particularmente para declarar a localização das extensões PHP.
O arquivo de inicialização php.ini se localiza na pasta Resources do banco. Se este arquivo no está presente durante a primeira chamada, 4D o criará com as opções de configuração apropriadas. 

O arquivo php.ini do intérprete externo deve conter as seguintes entradas:

  • auto_prepend_file que oferece a rota de acesso completa ao script utilitário 4D_Execute_PHP.php. Este script se encontra em [aplicação 4D]Resources/php/Windows o /Mac. Sem esta entrada, só os scripts inteiros podem ser executados: a chamada de uma rotina dentro de um script não funcionará.
  • display_errors fixa um "stderr" de maneira que 4D possa estar informado quando ocorra um erro durante a execução de código PHP. Exemplo:
    ; stderr - Mostrar os erros para STDERR (afeta unicamente os CGI/CLI)
    Para dirigir os erros a STDERR para os CGI/CLI:
    display_errors = "stderr"
Para maior informação sobre a configuração de arquivos php.ini personalizados, por favor consulte os comentários que se encontram no arquivo php.ini fornecido por 4D.



Ver também 

PHP Execute

 
PROPRIEDADES 

Produto: 4D
Tema: PHP

 
HISTÓRIA 

 
ARTICLE USAGE

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