Consultores Renato Rubinho Postado 18 Junho Consultores Postado 18 Junho Olá pessoal, Segue um tutorial de como configurar o ambiente de desenvolvimento de php para utilizar as bibliotecas do ACBr. Uma informação importante é que a comunicação com as bibliotecas é feita através da extensão FFI. Limitação: * A FFI foi implementado na versão 7.4.0, versões anteriores não possuem esse recurso. A seguir segue passo-a-passo para configuração do ambiente de desenvolvimento. 1. Início 1.1. IDE Você pode utilizar a IDE de sua preferência. Utilizaremos aqui o Visual Studio Code (VSCode). 1.2. Requisitos 1.2.1. Instalar o Visual c++redistributable package 2015, caso ainda não o tenha instalado em seu ambiente 2. Instalando o PHP 8 Baixar a última versão do php em: https://www.php.net/downloads Acesse o link Windows downloads Baixe o "zip" da última versão TS(Thread Safe) na mesma arquitetura do seu computador Exemplo para x64: VS16 x64 Thread Safe A diferença entre a versão e a TS(Thread Safe) e NTS(Non Thread Safe) é que a TS suporta servidores multithreaded. 2.1. Extrair o zip, copiar a pasta para c:\ e remeie para um caminho mais curto Neste caso, que está na versão 8, ficará C:\php8 2.2. Vamos utilizar o arquivo ini padrão de configurações: C:\php8\php.ini-development Renomeie para php.ini Abra o arquivo para as próximas configurações 2.3. Extensões 2.3.1. Localizar a chave extension_dir e descomentar essa chave para indicar de onde buscar as extensões, que serão localizadas na pasta "ext", dentro da pasta do php: C:\php8\ext extension_dir = "ext" Obs: Em um cenário de testes, foi necessário colocar o caminho completo da pasta para o php conseguir acessar as extensões Caso tenha problemas com alguma extensão, tente colocar o caminho completo extension_dir = "C:\php8\ext" 2.3.2. Localizar as chaves "extension" Para utilizar as extensões que deseja, remover os comentários (ponto e vírgula no início da linha) das extensões que precisar 2.3.2.1. Extensão ffi para consumo das dlls do ACBr extension=ffi 2.3.2.2. Manipulação de strings pelo php extension=mbstring 2.4. Outras configurações 2.4.1. Diretório temporário, descomentar a seguinte linha e preencher o caminho de arquivos temporários do Windows session.save_path = "C:/Windows/Temp" 2.4.2. Localizar a chave error_reporting = E_ALL e preencher conforme abaixo error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 2.4.3. Localizar ffi.enable e preencher com true ffi.enable = true 2.4.4. Caso não esteja habilitada, habilitar a exibição de erros display_errors = On 2.5. Debug A opção de debug não é obrigatória, mas facilita muito o desenvolvimento Verifique se sua IDE suporta a opção 2.5.1. XDebug Acessar https://xdebug.org/download/historical Baixe a versão de "Windows binaries" relacionada a versão do php que foi instalada Neste cenário de testes, vamos baixar a PHP 8.3 VS16 TS (64 bit), pois foi instalado o php TS(Thread Safe) Renomeie a dll baixada para php_xdebug.dll e salve em c:\php8\ext 2.5.1.1. Adicionar no final do arquivo a seção Xdebug com as linhas abaixo [Xdebug] zend_extension="C:\php8\ext\php_xdebug.dll" xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_host=127.0.0.1 xdebug.client_port=9003 xdebug.log=C:\php8\log\xdebug.log 2.5.2. VSCode Instalar a extesão: PHP Debug Origem: xdebug.org Selecione a extensão, e clique em "Install" à direita 2.5.2.1. Criar uma pasta ".vscode" dentro da pasta do projeto Exemplo: \Projeto\.vscode 2.5.2.1.1. Criar um arquivo "launch.json" dentro da pasta ".vscode" com o conteúdo abaixo: No nosso exemplo, que o projeto estará na raiz do Apache ficará: C:\Apache24\htdocs\.vscode\launch.json { "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003 } ] } 2.5.2.2. Ao debugar, se ocorrer o erro: php executablenote found. Install PHP and add it to your PATH or set the php.debug.executablePath setting Configurar o php no PATH do windows Clique no Menu Iniciar e escreva Variáveis Clique em Editar as variáveis de ambiente do sistema Na aba Avançado, da tela de Propriedades do Sistema, clique no botão Variáveis de Ambiente No GroupBox de baixo Variáveis do sistema, selecione a Path e clique no botão Editar, abaixo do quadro Clique em Novo e preencha o caminho da pasta do php, seguindo nosso cenário: c:\php8 Clique em OK para confirmar e nas duas telas anteriores para fechar Reinicie o computador para garantir que a alteração no Path foi efetivada 3. Instalar o Apache Baixar o Apache em: https://www.apachelounge.com/download/ Baixe o zip da última versão, referente à arquitetura do seu computador 3.1. Extrair o zip, copiar a pasta Apache24 para c:\ Ficará c:\Apache24\ 3.2. Abra o arquivo de configurações: C:\Apache24\conf\httpd.conf 3.2.1. Localizar "Define SRVROOT" e confirmar se está apontando para onde salvou a pasta do Apache "c:/Apache24" Define SRVROOT "c:/Apache24" 3.2.2. Porta de acesso Localize a chave Listen Se a porta 80 estiver em uso indique qual porta será utilizada, senão mantenha a padrão Listen 80 Listen 80 3.2.3. Localize a chave ServerName Preencha com localhost e a porta que você configurou no item 3.2.2 ServerName localhost:80 3.3. Instalar o apache como serviço Pelo prompt, acessar a pasta C:\Apache24\bin\ Executar o comando: httpd.exe -k install Caso apareça tela do firewall do Windows, clicar em permitir 3.3.1. Para visualizar o serviço instalado, acesse os serviços do windows e procure por Apache2.4 Para acessar os serviços, abra a tela de Executar (teclas Windows + R), preencha services.msc e clique em OK Localize o Apache2.4, ele estará como inicialização automática, mas ainda não estará iniciado, clique com o botão direito e clique em Iniciar Para iniciar o serviço pelo prompt, acessar a pasta C:\Apache24\bin\, utilize o comando httpd -k start 3.3.2. Para verificar se o serviço está ok, acesse o navegador e navegue em localhost Caso nos passos 3.2.2 e 3.2.3 você tenha configurado uma porta diferente da 80, acesse localhost:sua porta. Ex: Para a porta 8080 acesse localhost:8080 Se aparecer "It works!", o Apache está funcionando 3.4. Configurar para acessar o php 3.4.1. Localize a chave LoadModule e adicione a nova linha para indicar o caminho da dll do php+apache LoadModule php_module "C:/php8/php8apache2_4.dll" 3.4.2. Localize DirectoryIndex que por padrão está aénas index.html, adicione index.php antes do index.html DirectoryIndex index.php index.html 3.4.3. Localize a chave AddType e adicione a linha para ele conhecer as extensões que irá processar AddType application/x-httpd-php .php .html 3.4.4. Um pouco mais abaixo, localize a chave AddHandler Adicionar o manipulador de cabeçalho AddHandler application/x-httpd-php .php Adicionar o caminho do arquivo php que vai processar Action application/x-httpd-php "C:/php8/php-cgi.exe" 3.4.5. No final do arquivo, configurar o caminho da pasta do php PHPIniDir "C:/php8" 3.4.6. Configurar também o Timeout Timeout 180 3.4.7. Testando o php no Apache Primeiro reinicie o serviço do Apache para as últimas configurações feitas relacionadas ao php Siga os passos do item 3.3.1 e clique na opção Reiniciar o Serviço ou pelo prompt, acessar a pasta C:\Apache24\bin\ e execute o comando httpd -k restart 3.4.7.1. Acesse a pasta C:\Apache24\htdocs\ e crie o arquivo index.php Adicione o conteúdo a seguir e salve o arquivo <?php phpinfo(); 3.4.7.2. Abra o navegador e acesse novamente localhost Deverá abrir uma página contendo as informações do php, iniciando pela versão instalada 3.4.7.3. Pesquise por XDebug Encontre o grupo de informações do XDebug para verificar se também foi configurado com sucesso 4. Testando o programa de exemplo do ACBr 4.1. Baixe os fontes do ACBr, seguindo as instruções do tópico a seguir: https://projetoacbr.com.br/fontes/ 4.2. Acesse os arquivos dos programas de exemplo para php da ACBrLib: ..\ACBr\Projetos\ACBrLib\Demos\PHP\ Copie o conteúdo da pasta ..\ACBr\Projetos\ACBrLib\Demos\PHP\ConsultaCNPJ para C:\Apache24\htdocs\ 4.3. Copiando as dlls da ACBrLib e suas dependências Veja o tópico a seguir para maiores detalhes, caso ainda não esteja familiarizado com o ambiente das bibliotecas ACBr 4.3.1. Download 4.3.1.1. Links para download das bibliotecas, versões PRO e Demo 4.3.1.1.1 Link Geral ACBr Pro: https://www.projetoacbr.com.br/forum/files/category/36-acbrlib-pro/ Link direto para a ACBrLibConsultaCNPJ 4.3.1.1.2. Link Geral ACBr Demo: https://www.projetoacbr.com.br/forum/files/category/63-acbrlib-demo/ Link direto para a ACBrLibConsultaCNPJ 4.3.2. Extraindo a dll da biblioteca Vamos tomar como exemplo a versão Demo Extraia o conteúdo do arquivo baixado e acesse a pasta bin Copie a versão da Lib equivalente à arquitetura da sua instalação do php para as respectivas pastas ST (Single Thread) e MT(Multi Thread) 4.3.2.1. Primeiro vamos pegar a biblioteca para o programa de exemplo ST Acesse a pasta ..\bin\Cdecl\ e copie a dll referente à arquitetura da sua instalação do php Para o nosso exemplo, que é a versão 64 bits, vamos copiar a dll ..\bin\Cdecl\ACBrConsultaCNPJ64.dll Copie a dll para C:\Apache24\htdocs\ST\ACBrLib\x64 4.3.2.2. Vamos agora copiar a versão MT Acesse a pasta ..\bin\MT\Cdecl\ e copie a dll referente à arquitetura da sua instalação do php Para o nosso exemplo, que é a versão 64 bits, vamos copiar a dll ..\bin\MT\Cdecl\ACBrConsultaCNPJ64.dll Copie a dll para C:\Apache24\htdocs\MT\ACBrLib\x64 4.3.3. Dependências 4.3.3.1. OpenSSL Seguindo o mesmo critério da arquitetura do php, vamos copiar as dlls da OpenSSL para ambas as pastas dos demos No nosso cenário de 64 bits, vamos copiar as dlls da pasta ..\dep\OpenSSL\x64 para as pastas C:\Apache24\htdocs\ST\ACBrLib\x64 e C:\Apache24\htdocs\MT\ACBrLib\x64 4.3.3.2. LibXML2 Para a ACBrConsultaCNPJ a LibXML2 não é necessária e não é distribuída no pacote, mas caso esteja seguindo este tutorial para outras bibliotecas, de DFes por exemplo, isso será necessário No nosso cenário de 64 bits, devemos copiar as dlls da pasta ..\dep\LibXml2\x64 para as pastas C:\Apache24\htdocs\ST\ACBrLib\x64 e C:\Apache24\htdocs\MT\ACBrLib\x64 5. Testando os programas de exemplo 5.1. Para testar as versões ST e MT, acesse respectivamente: http://localhost/ACBrConsultaCNPJST.php http://localhost/ACBrConsultaCNPJMT.php Lembrando que, caso tenha configurado uma porta diferente da 80 no Apache, ela deve ser adicionada na url Exemplos da porta 8080 http://localhost:8080/ACBrConsultaCNPJST.php http://localhost:8080/ACBrConsultaCNPJMT.php 6. Debugando com o VSCode 6.1. Para debugar os fontes php você pode colocar um ponto de parada posicionando na linha desejada e clicando em "F9" ou, com o mouse, clicar do lado esquerdo da numeração da linha O ponto será identificado com uma bolinha vermelha Para iniciar o debug, acesse o menu Run / Start Debugging ou pressione F5 O VSCode passará a escutar os retornos do XDebug e irá habilitar uma pequena barra para as interações Agora que o VSCode está com o debug ativo, acesse o programa de exemplo, acione o método que colocou o ponto de parada e utilize os botões da barra de debug ou as teclas de atalho que podem ser vistas ao passar o mouse sobre cada botão É isso pessoal, esperamos que esse novo conteúdo seja útil para a comunidade e caso tenham dúvidas, sugestões estaremos sempre prontos para atendê-los em nosso canais. Até mais!!! 8 2
Consultores Renato Rubinho Postado 5 Novembro Autor Consultores Postado 5 Novembro PHP consumindo bibliotecas do ACBr em servidores sem ambiente gráfico 1
Recommended Posts