4D v13.4

Assistência aos módulos PHP

Página Inicial

 
4D v13.4
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
  • Instruções de instalação de módulos adicionais.

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
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 en él

(*) En la versión atual de 4D, estes módulos no están disponibles em Windows

For structural reasons, the following PHP modules are only available on the Windows platform.

NameWeb SiteDescription
COM & .NEThttp://php.net/comCOM (Component Object Model) is one of the main ways for applications and components to communicate on Windows platforms. In addition, 4D supports the instantiation and creation of .Net assemblies via the COM layer.
ODBC (Open DataBase Connectivity)http://php.net/odbcIn addition to standard ODBC support, the Unified ODBC functions in PHP gives you access to several databases that have borrowed the semantics of the ODBC API to implement their own API.
WDDX (Web Distributed Data eXchange)http://php.net/wddxFacilitates data exchanges between Web applications over the Web, regardless of the platform

Os seguintes módulos PHP não foram implementados em 4D v12. 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 intérprete PHP lhe dá a possibilidade de instalar módulos adicionais. Este princípio permite acessar as funcionalidades específicas não presentes por definição. 
Pode instalar vários tipos de extensões:

  • extensões PECL (PHP Extension Community Library)
  • extensões do framework PEAR (PHP Extension and Application Repository)
  • extensões do framework Zend
  • extensões do framework Symphony
  • extensões do framework JELIX
  • componentes eZ

A informação de instalação para cada tipo de extensão é encontrada a seguir.

Nota: as características da versão de PHP oferecida com 4D v12 são os seguintes:

  • Versão 5.3.2
  • Em Windows e Mac OS,  compilação 32 bits e em modo "thread-safe"
Arquivo "php.ini": o arquivo "php.ini" a modificar (ver a seguir) pode estar localizado na pasta Resources da aplicação 4D (arquivo por padrão) ou na pasta de preferências do banco (arquivo personalizado). Para maior informação, consulte .

Website: http://pecl.php.net
Para adicionar as extensões PECL:

  1. Baixe e construa a extensão PECL desejada.
    Ou
    Tome a extensão já criada desde um pacote binário Windows PHP 5.3 VC9 Non Thread Safe (http://windows.php.net/download/#php-5.3-nts-VC9-x86)
  2. Adiciona a extensão na pasta das extensões. 
  3. Ative a extensão no arquivo "php.ini".

Atenção: se as extensões disponíveis no website PECL estão sob licença PHP não restritiva, algumas podem necessitar bibliotecas, as quais tem uma licença mais restrita.

As extensões PHP estão disponíveis em outros websites, mas nesse caso não tem a garantia de segurança oferecida pela validação do PHP Group.

Website: http://pear.php.net
PEAR é um framework totalmente orientado a objetos.
Para adicionar as extensões PEAR:

  1. Baixe (http://pear.php.net/package/PEAR/download) e descomprima o pacote PEAR numa pasta chamada "pear".
  2. Adiciona esta pasta "pear" no "include_path" definido no arquivo "php.ini".
  3. Baixe e descomprima todo pacote PEAR nesta pasta.

  1. Baixe (http://framework.zend.com/download/latest) e descomprima o framework Zend em uma pasta chamada "zend". 
  2. Adiciona esta pasta "zend" no "include_path" especificado no arquivo "php.ini". 
  3. Leia a documentação dos componentes do framework Zend: http://framework.zend.com/manual/en

Website: http://www.symfony-project.org
O framework Symphony está estruturado de maneira que seja utilizado como uma aplicação web acompanhada de seu controlador web. 

  1. Descarregue e descomprima o framework fonte assim como também o sandbox desde a direção: http://www.symfony-project.org/installation/1_2.

  1. Baixe (http://jelix.org/articles/en/download/stable) e descomprima o framework JELIX.
  2. Adicione a pasta "jelix" resultante no "include_path" definida no arquivo "php.ini".
  3. Leia a documentação dos componentes do framework JELIX: http://jelix.org/articles/en/manual-1.1/components

  1. Baixe (http://www.ezcomponents.org/download) e descomprima os componentes eZ em uma pasta "ez".
  2. Adiciona a pasta "ez" no "include_path" definido no arquivo "php.ini".
  3. Leia a documentação dos componentes eZ: http://www.ezcomponents.org/docs/api/latest

 
PROPRIEDADES 

Produto: 4D
Tema: PHP