4D v16.3

Assistência aos módulos PHP

Página Inicial

 
4D v16.3
PHP
Assistência aos módulos PHP

Assistência aos módulos PHP  


 

 

Este anexo detalha a implementação dos módulos PHP em 4D. São tratados os seguintes temas:

  • Lista de módulos padrão PHP oferecidos automaticamente com o intérprete PHP de 4D
  • Lista de módulos padrão PHP não retidos por 4D
  • Modificações do arquivo php.ini

Nota: se deseja instalar módulos adicionais, deve utilizar um intérprete FastCGI-php externo (ver Usar outro intérprete PHP ou outro arquivo php.ini).

A seguinte tabela detalha os módulos PHP oferecidos automaticamente com 4D.

NomeWebsiteDescrição
BCMathhttp://php.net/bcCalculadora binária que maneja números de qualquer tamanho e precisão representados como strings.
Exemplo:
 C_LONGINT($valor;$result)
 $valor:=4
 $ok:=PHP Execute("";"bcpow";$result;$valor;3)
Calendarhttp://php.net/calendarConjunto de funções que simplificam a conversão entre os diferentes formatos de calendários. Baseado no calendário Juliano.
Exemplo:
 C_LONGINT($NúmeroDeDias)
 $ok:=PHP Execute("";"cal_days_in_month";$NumeroDeDias;1;2;2010)
Ctypehttp://php.net/ctypeFunções que verificam se um caractere ou uma string pertencem a uma certa classe de caracteres, dependendo da configuração local atual.
[tab/]Exemplo:
  // Verificar que todos os caracteres da  string sejam signos de pontuação
 C_TEXT($myString)
 $myString:=",.;/"
 $ok:=PHP Execute("";"ctype_punct";$isPunct;$myString)
Date and Timehttp://php.net/datetimeRecuperação da data e hora desde o servidor donde o script PHP se executa
Exemplo:
  //Cálculo da hora do amanhecer em 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 através do API DOM API de PHP 5
Exifhttp://php.net/exifTrabalha com os metadados das imagens.
Fileinfo(*)http://php.net/fileinfoDetecção do tipo de conteúdo e da codificação de um arquivo.
Filterhttp://php.net/filterValidar e filtrar os dados de uma fonte não segura, como as entradas dos usuários.
Exemplo:
 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/ftpAcesso detalhado a um servidor FTP
Hashhttp://php.net/hashMotor de resumo de mensagens (Message Digest). Permite o processamento direto ou indireto da mensagem de longitude arbitrário utilizando uma variedade de algoritmos
Exemplo:
 C_TEXT($md5Result)
 $ok:=PHP Execute("";"md5";$md5Result;"esta é minha  string à que se lhe vá a fazer hash")
GD (Graphics Draw) Libraryhttp://php.net/gdManipulação de imagens
Iconvhttp://php.net/iconvConversão de arquivos entre diferentes conjuntos de caracteres
JSON (JavaScript Object Notation)http://php.net/jsonImplementação do formato de intercâmbio de dados JSON
LDAPhttp://php.net/ldapLDAP é um protocolo de acesso aos "servidores de pastas" que armazenam a informação em forma de diagrama de árvore
LibXMLhttp://php.net/libxmlBiblioteca de funções e constantes XML
LibXSLThttp://php.net/xslBiblioteca de funções de transformação XSL
Multibyte Stringhttp://php.net/mbstringConjunto de funções de manipulação de strings que permite trabalhar com as codificações multi-bytes ou converter os conjuntos de caracteres.
OpenSSLhttp://php.net/opensslUso das funções de OpenSSL para gerar e verificar as assinaturas, codificar e decodificar os dados.
PCRE (Perl Compatible Regular Expressions)http://php.net/pcreConjunto de funções que implementam as expressões racionais utilizando a mesma sintaxe e semântica que Perl 5
Exemplo:
  // Este exemplo remove os espaços desnecessários de uma string
 C_TEXT($myString)
 $myString:="foo       o        bar"
 PHP Execute("";"preg_replace";$myString;"/\\s\\s+/";" ";$myString)
 ALERT($myString)
  //A string contém agora 'foo o bar' sem espaços duplicados
PDO (PHP Data Objects)http://php.net/pdoInterface de acesso a um banco de dados. Necessita um driver PDO específico ao banco de dados.
PDO_SQLITEhttp://php.net/pdo_sqliteDriver que implementa a interface de PHP Data Objects (PDO) para autorizar o acesso de PHP aos bancos de dados SQLite 3.
Reflectionhttp://php.net/reflectionAPI de reflexão completa que permite fazer engenharia reversa sobre as classes, as interfaces, as funções, os métodos, como também as extensões
Phar (PHP Archive)http://php.net/pharPermite incluir uma aplicação PHP completa em um arquivo único chamado "phar" (PHP Archive) para facilitar sua instalação e sua configuração
Sessionhttp://php.net/sessionSuporte de sessões PHP
Exemplo:
As sessões se utilizam nas aplicações web para conservar o contexto entre cada consulta. Quando você chama PHP Execute em 4D, o script PHP pode iniciar uma sessão e armazenar tudo o que for útil para conservar como contexto no array associado $_SESSION. Se um script PHP utiliza as sessões, deve obter o ID de sessão devolvido por PHP utilizando o comando PHP GET FULL RESPONSE e definir antes de cada chamada a PHP Execute utilizando o comando SET ENVIRONMENT VARIABLE.
  // Método "PHP Executar com 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/simpleXMLFerramentas muito simples e fáceis de utilizar para converter de XML a um objeto que pode ser processado com suas propriedades e os iteradores de arrays
Socketshttp://php.net/socketsImplementação de uma interface de baixo nivel com as funções de comunicação por socket baseados nos sockets BSD e oferece a possibilidade de funcionar também como servidor socket e cliente.
SPL (Standard PHP Library)http://php.net/splColeção de interfaces e de classes utilitárias criadas para resolver problemas padrão.
SQLitehttp://php.net/sqliteExtensão para o motor de banco de dados SQLite. Este motor pode estar embebido.
SQLite3http://php.net/sqlite3Suporte para os bases de dados SQLite versión 3
Tokenizerhttp://php.net/tokenizerFunções que permitem escrever suas proprias ferramentas PHP de análise ou de modificações sem ter que tratar com a especificação da linguagem ao nível lexical
XML (eXtensible Markup Language)http://php.net/xmlAnálise dos documentos XML
XMLreaderhttp://php.net/xmlreaderAnalizador XML Pull
XMLwriterhttp://php.net/xmlwriterGeração do fluxo e dos arquivos ao formato XML
Zlibhttp://php.net/zlibLeitura e escritura de arquivos comprimidos gzip (.gz)
Exemplo:
 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/zipLeitura e escritura dos arquivos comprimidos ZIP e os arquivos nele

(*) Na versão atual de 4D, estes módulos não estão disponíveis em Windows

Por razões estruturais, os seguintes módulos PHP só estão disponíveis na plataforma Windows.

NomeSite webDescrição
COM & .NEThttp://php.net/comCOM (Component Object Model) é um dos métodos mais utilizados por aplicações e componentes para a comunicação em plataformas Windows. Adicionalmente, 4D suporta a exemplificação e criação de ensambles .Net sob a capa COM.
ODBC (Open DataBase Connectivity)http://php.net/odbcAlém do suporte do ODBC padrão, o ODBC unificado de PHP lhe da acesso a várias bases de dados que tomaram emprestada a semântica dos API ODBC para implementar seus próprios API.
WDDX (Web Distributed Data eXchange)http://php.net/wddxFacilita os intercâmbios de dados entre aplicações web via a web, sem importar a plataforma

Os seguintes módulos PHP não foram implementados em 4D. A coluna direita explica a razão pela qual não foi implementado:

NomeWebsiteCausa - Solução 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/crackLicença restrita
ffmpeghttp://ffmpeg-php.sourceforge.net/Licença restrita - Uso ffmpeg em linha de comando com LAUNCH EXTERNAL PROCESS
Image Magickhttp://php.net/manual/book.imagick.phpLicença restrita - Uso GD 2
IMAP (Internet Message Access Protocol)http://php.net/imapLicença restrita - Uso do plug-in integrado 4D Internet Commands
PDF (Portable Document Format)http://php.net/pdfLicença restrita - Utilizar Haru PDF
Mysqlnd (MySQL Native Driver)http://dev.mysql.com/downloads/connector/php-mysqlnd/Não pertinente no ambiente 4D
Phar (PHP Archive)http://php.net/pharNão pertinente no ambiente 4D

O arquivo "php.ini" a modificar (ver mais a frente) pode estar localizado na pasta Resources\php da aplicação 4D (arquivo por padrão) ou na pasta Resources da base (arquivo personalizado). Para mais informação sobre este tema, consulte Executar scripts PHP em 4D.

Advertência: A modificação do arquivo "php.ini" deve ser feita com precaução e requer um bom conhecimento de PHP. Para mais informação sobre a configuração dos arquivos php.ini personalizados, pode consultar os comentários que se encontram no arquivo php.ini oferecido por 4D.

Nota: Se a duração do processamento de PHP é relativamente longa (além dos 30 segundos), por padrão se devolve um erro de tipo 'timeout' em 4D e o processamento irá falhar. Neste caso, pode configurar o timeout por padrão com o propósito de dedicar mais tempo a execução PHP. Há duas formas de fazer isto:

  • Definindo a variável max_execution_time no arquivo "php.ini" (passe um valor em segundos). Atenção: esta configuração afeta a todas os scripts
  • Chamando o comando set_time_limit (nbSec) no script de execução PHP que está realizando o processo longo. Passe o tempo máximo atribuído a execução do script PHP em nbSec. Se recomenda utilizar esta configuração, já que só afeta a este script. Geralmente, por razões de segurança, é preferível conservar um valor de timeout para os scripts PHP.

 
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)