Pesquisar na Comunidade
Showing results for tags 'PHP'.
Encontrado 36 registros
-
Olá pessoal, Foram disponibilizados na Rev-46134 os programas de exemplo em PHP, Singlethread e Multithread utilizando a ACBrLibDCe. ..\ACBr\Projetos\ACBrLib\Demos\PHP\DCe\ACBrDCeDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\DCe\ACBrDCeDemoMT.php Lembrando que os programas de exemplo em php utilizam a ACBrComum.php que contém métodos em comum entre os modos (ST e MT) e para todas as libs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum\ACBrComum.php Até mais!!!
-
Ei, galera do fórum ACBr! Quem aí já perdeu noites de sono brigando com crashes misteriosos no PHP-FPM ao tentar integrar a ACBrLib via FFI? Pois é, eu passei por isso e resolvi compartilhar essa jornada aqui no tópico, pra ajudar quem tá no mesmo barco. Vamos destrinchar o problema, as tentativas frustradas e a solução que salvou o dia: Laravel Octane com RoadRunner. Se você tem dicas extras ou variações, comenta ai! Resumo Rápido (Pra Quem Tem Pressa) O vilão? SIGSEGV ao carregar ACBrLib via FFI::cdef() no PHP-FPM, culpa da dependência gráfica libgdk-x11-2.0.so que não joga bem em times multi-processo. Tentativas como FPM solitário ou FrankenPHP deram dor de cabeça, mas o herói final é Laravel Octane com RoadRunner: workers isolados, PHP do sistema e zero recompilações. Funciona como mágica no CLI, melhora performance e acaba com os crashes. Ah, e queues são um plano B infalível pra offloadar o trabalho pesado! O Problema: O SIGSEGV, Esse Inimigo Invisível Sintomas Clássicos Boom! Seu worker FPM morre com um "exited on signal 11 (SIGSEGV)" nos logs – clássico de quem integra libs nativas. Frontend grita "502 Bad Gateway" ou "Connection reset by peer". No Laravel? Logs cheios de drama: "Erro crítico ao carregar a biblioteca ACBr!". Tudo isso rola no código inocente: $ffi = FFI::cdef(file_get_contents($importsPath), $dllPath); // Aqui o bicho pega, galera! Ambiente do Crime PHP 8.3+ no FPM. Laravel 12, FFI on fire. ACBrLib NFe (aquela .so marota). Linux (Ubuntu/Debian) com Interface Gráfica, porque no Windows com Laragon, era paz e amor graças ao php-cgi sem forks malucos. Alguém aí usa Windows e confirma? Causa Raiz: Culpa da GDK, Essa Dependência Gráfica Teimosa A estrela problemática é libgdk-x11-2.0.so (dependência do ACBrLib via GTK+). Verifique com: ldd libacbrnfe64.so | grep gdk # Spoiler: Ela aparece e causa o drama Por quê? GDK adora recursos X11 (display, eventos), mas em FPM multi-processo, é como convidar um elefante pra uma festa em apartamento: race conditions, violações de memória e... SIGSEGV! Libs MT como ACBr não curtem forks mas threads sim, processos clones nem tanto. No fórum, já vi posts parecidos e recomendações ao uso do CONSOLE-MT; alguém tem um workaround pra GDK sem Xvfb? Tentativas Frustradas 1. FPM Solitário: "Só Eu e Meu Processo" Ideia: Configurar pm.max_children=1 Resultado: Ainda crasha, e o server vira lesma. Lição: Não adianta maquiar o problema. Alguém testou isso com ACBr? 2. FrankenPHP: O "Monstro" Promissor Top em performance (até 4x mais rápido que FPM!), mas precisa recompilar PHP com FFI embed -> um pesadelo. Abandonado porque, né? Vida curta pra isso. (Dica: Em 2025, ele brilha em setups simples, mas não substitui Nginx/Apache em tudo. Solução Vencedora: Laravel Octane + RoadRunner – O Duo Dinâmico pra ACBr! Por quê? RoadRunner usa PHP CLI isolado (sem forks malucos), mantém workers persistentes e adora FFI. Benchmarks de 2025 confirmam: throughput insano! Escalável e evita overhead, perfeito pro nosso mundo fiscal. Passos Rápidos (Atualizados com Dicas de 2025) Verifique FFI no CLI: php -m | grep ffi. Se não, ative em /etc/php/8.3/cli/conf.d/20-ffi.ini. Instalar RoadRunner # Baixar RoadRunner wget https://github.com/roadrunner-server/roadrunner/releases/latest/download/rr_linux_amd64.deb # Instalar sudo dpkg -i rr_linux_amd64.deb sudo apt-get install -f -y # Verificar instalação rr --version Instalar Laravel Octane cd /var/www/seu-projeto # Instalar Octane composer require laravel/octane # Publicar configuração php artisan octane:install Quando perguntado, escolha: RoadRunner Configurar RoadRunner Crie/edite o arquivo .rr.yaml na raiz do projeto: version: "3" rpc: listen: tcp://127.0.0.1:6001 server: command: "php" user: "" group: "" env: - APP_RUNTIME: RoadRunner http: address: 0.0.0.0:80 middleware: ["gzip"] pool: num_workers: 4 max_jobs: 0 allocate_timeout: 60s destroy_timeout: 60s logs: level: error output: stdout err_output: stderr Configurar Octane Edite config/octane.php: 'server' => env('OCTANE_SERVER', 'roadrunner'), 'max_execution_time' => 30, Criar Serviço Systemd Crie o arquivo /etc/systemd/system/octane.service: [Unit] Description=Laravel Octane RoadRunner Server After=network.target postgresql.service [Service] Type=simple User=root WorkingDirectory=/var/www/seu-projeto Environment="PHP_INI_SCAN_DIR=/etc/php/8.3/cli/conf.d" Environment="FFI_ENABLE=1" Environment="DISPLAY=:99" ExecStart=/usr/bin/php -d ffi.enable=1 /var/www/seu-projeto/artisan octane:start --server=roadrunner --host=0.0.0.0 --port=80 --rpc-host=127.0.0.1 --rpc-port=6001 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target Importante: Ajuste WorkingDirectory para o caminho do seu projeto Ajuste a porta se necessário (80 requer root, ou use 8000 e configure proxy reverso) -d ffi.enable=1 garante que FFI está habilitado Habilitar e Iniciar Serviço # Recarregar systemd sudo systemctl daemon-reload # Habilitar serviço (inicia no boot) sudo systemctl enable octane.service # Iniciar serviço sudo systemctl start octane.service # Verificar status sudo systemctl status octane.service # Ver logs sudo journalctl -u octane.service -f Xvfb ainda é amigo: apt install xvfb && Xvfb :99 &. Permissões? chown www-data pra evitar birras. Comparação: FPM vs. RoadRunner Aspecto PHP-FPM RoadRunner FFI/ACBr Explode em SIGSEGV Roda suave como manteiga Perf. Boa, mas lenta em picos Estelar – workers eternos! Manut. Fácil, mas crash-prone Média, mas vale o ouro Humor "Crash? De novo?!" "Pronto pro próximo request!" Troubleshooting Rápido Serviço não liga? journalctl -u octane -f – logs salvam vidas. Workers morrendo? Cheque memória (free -h) ou leaks no código. Porta ocupada? lsof -i :80 e mude pra 8000 com proxy. Se RoadRunner der PT, queues são backups ótimos, simples e crash-free! Referências Atualizadas (2025 Edition) Laravel Octane Docs. RoadRunner.
-
Olá pessoal, Foram disponibilizados na Rev-42571 os programas de exemplo em PHP, Singlethread e Multithread utilizando a ACBrLibExtratoAPI. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ExtratoAPI\ACBrExtratoAPIDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\ExtratoAPI\ACBrExtratoAPIDemoMT.php Lembrando que os programas de exemplo em php utilizam a ACBrComum.php que contém métodos em comum entre os modos (ST e MT) e para todas as libs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum\ACBrComum.php Até mais!!!
-
- 5
-
-
-
- php
- extratoapi
-
(e 1 mais)
Tags:
-
Olá pessoal, Foram disponibilizados na Rev-40999 os programas de exemplo em PHP, Singlethread e Multithread utilizando a ACBrLibNFCom. ..\ACBr\Projetos\ACBrLib\Demos\PHP\NFCom\ACBrNFComDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\NFCom\ACBrNFComDemoMT.php Lembrando que os programas de exemplo em php utilizam a ACBrComum.php que contém métodos em comum entre os modos (ST e MT) e para todas as libs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum\ACBrComum.php Até mais!!!
-
Olá pessoal! É com grande alegria que informamos a vocês que uma novidade muito pedida pelos membros da comunidade, os dockers do ACBr, são agora uma realidade! O primeiro docker disponível foi construído para demonstrar o uso dos exemplos de consumo da Lib disponíveis para a linguagem PHP(mais sobre eles AQUI). O fonte pode ser encontrado neste repositório do nosso perfil oficial do GitHub e a imagem pode ser encontrada neste repositório em nosso perfil oficial no DockerHub. Além do docker em PHP que foi disponibilizado, outros estão em construção para demonstrar o uso em outras linguagens! O que é Docker e para que ele serve? O docker é um container que pode isolar as configurações e dependências necessárias para o correto funcionamento de uma aplicação, garantindo facilidade de implantação, portabilidade, consistência e escalabilidade. Posso usar o Docker do ACBr em produção? O docker foi construído para demonstrar e orientar como criar um container da maneira certa para o correto uso das soluções do ACBr, portanto, recomendamos o estudo do container para criarem suas imagens de acordo com as necessidades e particularidades de sua aplicação, mas não recomendamos o uso do docker do ACBr direto em produção. Ouça mais informações sobre os Dockers do ACBr nesta edição do Papo PRO que foi realizada sobre o assunto:
-
Olá pessoal, Foram disponibilizados na Rev-37915 os programas de exemplo em PHP, Singlethread e Multithread utilizando a ACBrLibReinf. ..\ACBr\Projetos\ACBrLib\Demos\PHP\Reinf\ACBrReinfDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\Reinf\ACBrReinfDemoMT.php Lembrando que os programas de exemplo em php utilizam a ACBrComum.php que contém métodos em comum entre os modos (ST e MT) e para todas as libs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum\ACBrComum.php Até mais!!!
-
Olá pessoal, Foram disponibilizados na Rev-37553 os programas de exemplo em PHP, Singlethread e Multithread utilizando a ACBrLibNCMs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\NCMs\ACBrNCMsDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\NCMs\ACBrNCMsDemoMT.php Lembrando que os programas de exemplo em php utilizam a ACBrComum.php que contém métodos em comum entre os modos (ST e MT) e para todas as libs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum\ACBrComum.php Até mais!!!
-
Olá pessoal, Foram disponibilizados na Rev-37432 os programas de exemplo em PHP, Singlethread e Multithread utilizando a ACBrLibIBGE. ..\ACBr\Projetos\ACBrLib\Demos\PHP\IBGE\ACBrIBGEDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\IBGE\ACBrIBGEDemoMT.php Lembrando que os programas de exemplo em php utilizam a ACBrComum.php que contém métodos em comum entre os modos (ST e MT) e para todas as libs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum\ACBrComum.php Até mais!!!
-
Erro no Retorno de Processamento - XML eSocial - Php
um tópico no fórum postou NicolaiFurtado ACBreSocial
Ao tentar realizar a mudança de versionamento do eSocial do 1.2 para o 1.3, o XML em si no cabeçalho está retornando conforme o esperado, entretanto, no momento do eSocial retornar o processamento da consulta o mesmo retorna o seguinte erro: A linguagem utilizada para a aplicação é php. -
Refatoração do Programa de exemplo ConsultaCEP em PHP
um tópico no fórum postou Renato Rubinho Notícias do ACBr
Olá pessoal, O programa de exemplo da ConsultaCEP em PHP foi refatorado (Rev-36953), seguindo os padrões que foram adotados nos novos programas que estão sendo desenvolvidos: Incorporado ACBrComum.php que contém métodos gerais que podem ser utilizados por todas as bibliotecas, removendo a redundância dos métodos Removidos arquivos individuais por método e centralizadas chamadas no ACBrCEPServicos**.php (** = MT ou ST) Unificada página principal em ACBrConsultaCNPJBase.php centralizando o código e removendo redundância entre MT e ST ..\ACBr\Projetos\ACBrLib\Demos\PHP\ConsultaCEP\ACBrCEPDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\ConsultaCEP\ACBrCEPDemoMT.php Até mais!!! -
Refatoração do Programa de exemplo ConsultaCNPJ em PHP
um tópico no fórum postou Renato Rubinho Notícias do ACBr
Olá pessoal, O programa de exemplo da ConsultaCNPJ em PHP foi refatorado (Rev-36889), seguindo os padrões que foram adotados nos novos programas que estão sendo desenvolvidos: Incorporado ACBrComum.php que contém métodos gerais que podem ser utilizados por todas as bibliotecas, removendo a redundância dos métodos Removidos arquivos individuais por método e centralizadas chamadas no ACBrConsultaCNPJServicos**.php (** = MT ou ST) Unificada página principal em ACBrConsultaCNPJBase.php centralizando o código e removendo redundância entre MT e ST ..\ACBr\Projetos\ACBrLib\Demos\PHP\ConsultaCNPJ\ACBrConsultaCNPJDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\ConsultaCNPJ\ACBrConsultaCNPJDemoMT.php Até mais!!! -
Olá pessoal, Conforme prometido no workshop, seguem detalhes da apresentação, utilizando a biblioteca ACBrLibNFe da convenção de chamadas Cdecl, compilando em x64. Baixando a Lib e identificando a versão que será utilizada Configurando o ambiente C# Configurando o ambiente PHP Configurando o ambiente Java com NetBeans 1. Baixando a Lib e identificando a versão que será utilizada Para download das versões completas para os usuários do ACBr PRO, acesse este link. Para download das versões DEMO, acesse este link. 1.1. Localize a biblioteca que deseja e acesse seu link para a página de download 1.1.1. Na página seguinte, clique no botão "Download" para baixar o pacote, com a bilioteca e dependências necessárias para sua execução. 1.2. Conteúdo do pacote 1.2.1. bin Pasta onde se encontram as compilações da biblioteca 1.2.2. dep Pasta contendo as dependências, sendo Dlls da OpenSSL, LibXml2, schemas, ini de serviços ou outras eventuais que sejam necessárias 1.2.3. log Contém o log do componente, que é core da biblioteca, e também o log de alterações na biblioteca 1.3. Versões Single Thread e Multi Thread 1.3.1. As Versões Single Thread ficam localizadas na pasta raiz da bin 1.3.2. As Versões Multi Thread ficam localizadas na pasta MT 1.4. Convenção de chamada: Cdecl ou StdCall ? * Acesse este link, da documentação da Lib, para maiores detalhes. 2. Configurando o ambiente C# 2.1. Caminho dos programas de exemplo Programas de exemplo em: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\C# Pasta Shared - Core compartilhado: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\C#\Shared 2.2. Soluções Single Thread (sem sufixo) ou Multi Thread (com sufixo MT) As soluções Multi Thread possuem o sufixo MT e as Single Thread não possuem sufixo. Dentro da pasta do programa de exemplo, acesse a pasta Demo e selecione a solução que irá utilizar. 2.3. Plataformas da solução: x86 ou x64 Acesse o Gerenciador de Configurações Selecione Novo, em Plataforma da solução ativa, e preencha x86 ou x64, de acordo com a arquitetura que deseja compilar 2.4. Salvando a biblioteca e as dependências Acesse a pasta bin, x86 ou x64 (de acordo com o que configurou no item 2.3), Debug e crie uma nova pasta ACBrLib Dentro da pasta ACBrLib, crie uma nova pasta x86 ou x64, de acordo com o que configurou no item 2.3 2.4.1. Neste novo caminho que foi criado, salve a biblioteca que irá utilizar e suas dependências 2.4.2. Atenção para pegar a bibliteca correta da pasta bin, extraída do pacote baixadose for Single Thread, conforme citado no item 1.3 Para versão Single Thread, copie a biblioteca das pastas na raiz da bin: ..\pasta extraída do pacote\bin Para versão Multi Thread, copie a biblioteca das pastas que se encontram dentro de MT: ..\pasta extraída do pacote\bin\MT 2.4.3. Faça o mesmo para as dependências, sempre tomando o cuidado de pegar as dlls da arquitetura em que compila a aplicação, conforme o item 2.3 2.5. Compile e execute o programa de exemplo 2.6. Siga os passos indicados no item 5 para as configurações básicas para execução do programa de exemplo, elas serão as mesmas para todas as linguagens e o programa de exemplo estará pronto para funcionar 2.7. NuGet Para todas as bibliotecas do ACBr foram criados pacotes nuget para as classes de alto nível e o core. 2.7.1. Primeiro devemos remover o core e as classes de alto nível da solução 2.7.2. Acessar o Gerenciador de pacotes do nuget, no menu ferramentas 2.7.3. Pesquisar por ACBrLib Selecionar o pacote da bibliteca que vamos instalar Atenção, pois existem pacotes para Single Thread e Multi Thread, sendo o Single Thread sem sufixo e o Multi Thread com o sufixo MT Selecionamos o pacote, à direita a versão e clicamos em instalar Como os pacotes tem dependência do core, automaticamente o core também será instalado 2.7.4. Na janela seguinte, confirmamos a instalação 2.7.5. Caso existam versões mais recentes dos pacotes, serão exibidas na aba "Atualizações" Neste exemplo, a NFe tinha dependêcia a partir de uma versão anterior à atual do core Ao instalar o core, ele foi listado como tendo uma atualização Recomenda-se manter sempre a última versão para obter todos os recursos disponibilizados A opção de atualização será útil também para futuras alterações nas classes de alto nível 2.7.6. Os pacotes instalados serão listados na aba "Instalado" 2.7.7. Ao compilar a solução, já estará funcionando com os nugets. 3. Configurando o ambiente PHP 3.1. Caminho dos programas de exemplo Programas de exemplo em: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\PHP ACBrComum - Funções em comum centralizadas: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum 3.2. Soluções Single Thread (sem sufixo) ou Multi Thread (com sufixo MT) As soluções Multi Thread possuem o sufixo MT e as Single Thread não possuem sufixo. Dentro da pasta do programa de exemplo, acesse a pasta Demo e selecione a solução que irá utilizar. 3.3. Passo a passo para configurar um ambiente com Php-8 + Apache Caso esteja iniciando no PHP, neste link existe um passo a passo completo ensinando como configurar o ambiente do zero 3.4. Habilitando o FFI no php.ini Para consumo das bibliotecas do ACBr no PHP, vamos utilizar a extensão FFI Ela foi disponibilizada no PHP a partir da versão 7.4.0, caso esteja com uma versão anterior a esta, será preciso atualizar o PHP Acesse o php.ini, na pasta onde o php foi instalado Remova o comentário da extension=ffi Procure pela seção ffi, remova o comentário de ffi.enable e preencha como true Após salvar o arquivo, reinicie o servidor de internet 3.5. Verificando FFI no phpinfo() Quando o FFI estiver habilitado, ele será exibido no phpinfo 3.6. Acesse ..\trunk2\ACBr\Projetos\ACBrLib\Demos\PHP e copie as pastas do programa de exemplo que irá utilizar e da ACBrComum para a raiz do seu servidor de internet 3.7. As pastas dos programas de exemplo já foram enviadas para o SVN com a estrutura de pastas onde devem ser salvas a Lib e as dependências Acesse a pasta MT ou ST, de acordo com o programa de exemplo que irá utilizar Depois ACBrLib E por último a pasta x86 ou x64, dependendoda versão do seu ambiente PHP 3.8. Dentro da pasta da arquitetura que selecionou, haverá um arquivo Leia-me instruindo qual a biblioteca que deverá ser salva naquele local Copie a biblioteca e as dependências, conforme instruído nos itens 2.4.2 e 2.4.3 Lembrando sempre em tomar cuidado com a versão ST ou MT, conversão de chamadas e arquitetura 3.9. Os programas de exemplo possuem uma página única para ST e MT: ACBrNFeBase.php 3.9.1. Para acessar a versão que deseja, selecione o arquivo com o sufixo desejado ACBrNFeDemoST.php: Para Single Thread ACBrNFeDemoMT.php: Para Multi Thread 3.10. Exemplo acessando a versão Multi Thread Como a pasta do programa de exemplo foi salva na raiz do servidor de internet, acessaremos localhost/NFe/ACBrNFeDemoMT.php Siga os passos indicados no item 5 para as configurações básicas para execução do programa de exemplo, elas serão as mesmas para todas as linguagens e o programa de exemplo estará pronto para funcionar 3.11. Servidor linux sem ambiente gráfico Este item esta sendo analisado e traremos mais informações assim que houver uma resposta 3.11.1. As bibliotecas do ACBr possuem dependência de ambiente gráfico devido ao motor de relatórios utilizado Estamos trabalhando para utilizar somente o FPDF e, com isso, acabar com essa dependência Enquanto isso não acontece, para servidores que não possuem ambiente gráfico, é necessário que seja instalado um emulador, como o XVFB Segue um dos nossos cursos para os usuários PRO onde esse assunto foi abordado 3.11.2. Com o emulador instalado, é necessário incluir a linha a seguir nos fontes antes de carregar a Lib putenv("DISPLAY=:99"); 3.11.3. Isso já foi tratado nas funções da ACBrComum.php 4. Configurando o ambiente Java com NetBeans 4.1. Caminho dos programas de exemplo Programas de exemplo em: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\Java ACBr Common - Core compartilhado: ..\trunk2\ACBr\Projetos\ACBrLib\Demos\Java\ACBr Common 4.2. Projetos Single Thread (sem sufixo) ou Multi Thread (com sufixo MT) As soluções Multi Thread possuem o sufixo MT e as Single Thread não possuem sufixo. Dentro da pasta do programa de exemplo, acesse a pasta Demo e selecione a solução que irá utilizar. 4.3. Abra os projetos ACBr Common e o da pasta Imports que contém os binds dos métodos da bblioteca 4.4. Plataformas dos projetos: x86 ou x64 Siga os passos nos 3 projetos Botão direito sobre o projeto, Propriedades Acesse Libraries Em Java Plataform, selecione a JDK da arquitetura que irá compilar e confirme 4.5. Acesse a pasta do programa de exemplo que carregou Crie a pasta ACBrLib Dentro de ACBrLib, crie a pasta x86 ou x64 de acordo com a arquitetura que irá compilar Diferente das outras linguagens mostradas anteriormente, o java não vai considerar as depedências dessa pasta, então vamos salvar somente a biblioteca 4.5.1. Para o projeto enxergar a biblioteca, vamos configurar o caminho criado para salvar a dll Acesse as propriedades do projeto do programa de exemplo Em Libraries, do lado direito, na aba Compile, clique no botão com sinal de [ + ], ao lado de Classpath Clique na opção Add JAR/Folder Selecione a pasta x86 ou x64 que foi criada no item anterior 4.6. Compile e execute o programa de exemplo Siga os passos indicados no item 5 para as configurações básicas para execução do programa de exemplo, elas serão as mesmas para todas as linguagens e o programa de exemplo estará pronto para funcionar 5. Configurações básicas para utilização do programa de exemplo 5.1. Na aba Geral, configure a "Pasta dos Logs" e a "Pasta dos Schemas" * No pacote onde a lib foi baixada, a pasta de schemas da NFe estará disponível em \dep\Schemas\NFe 5.2. Na aba Arquivos, configure: "Pasta Arquivos NFe", "Pasta Arquivos Inutilização" e "Pasta Arquivos Evento" 5.3. Na aba Webservices SSL Type: No momento da criação deste tópico, o padrão utilizado por todos os DFes é TLS1.2, selecione a opção LT_TLSv1_2 TimeOut: Configure o padrão 30k, lembrando que este é o limite de tempo de execução da sua chamada, o que quer dizer que será o tempo máximo que a aplicação irá esperar de resposta, caso o serviço responda em menos tempo, o retorno será neste tempo. Salvar envelope SOAP: Contém os envelopes soap enviados para para o serviço consumido e podem ser úteis para análise em casos de eventuais problemas. 5.4. Na aba Certificados 5.4.1. Configurando certificado A1 Recomendamos sempre a utilização da OpenSSL para certificados A1, pois ela é autossuficiente e não depende de atualizações do Sistema Operacional. Configure a CryptLib e HttpLib como OpenSSL e a XmlSignLib como LibXml2 Para utilização do certificado salvo em disco, preencha o caminho do certificado no campo "Caminho" ou para pegar o conteúdo do certificado em um banco de dados, por exemplo, preencha "Dados PFX" Para ambos, preencha a senha do certificado 5.4.2. Configurando certificado A3 Lembrando sempre que o certificado A3 é historicamente muito problemático, pois aprensenta problemas com driver, falhas devido a atualizações do Windows e outros. Requer que todas as atualizações do windows estejam em dia Configure a CryptLib como cryWinCrypt, HttpLib como httpWinHttp e a XmlSignLib como xsLibXml2 Configure a senha e o Número de Série do certificado 5.5. Com essas configurações o programa de exemplo estará pronto para funcionar
-
Olá pessoal, Estamos de volta para informar que as prateleiras de programas de exemplo do ACBr ganharam mais itens, pois foram disponibilizados na Rev-35855 os programas de exemplo em PHP, Singlethread e Multithread utilizando a ACBrLibMDFe. ..\ACBr\Projetos\ACBrLib\Demos\PHP\MDFe\ACBrMDFeDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\MDFe\ACBrMDFeDemoMT.php Vale lembrar que os programas de exemploem php utilizam a ACBrComum.php que contém métodos em comum entre os modos (ST e MT) e para todas as libs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum\ACBrComum.php Baixem as atualizações do SVN e aproveitem a novidade. Até mais!!!
-
Lançamento do Curso: PHP+FFI - Integrando com ACBrLib
um tópico no fórum postou Renato Rubinho Notícias do ACBr
Olá pessoal, Estamos disponibilizando mais um curso exclusivo para os assinantes do ACBr Pro: PHP+FFI - Integrando com ACBrLib O curso é objetivo e focado em mostrar como consumir as bibliotecas do ACBr no PHP através da extensão FFI e para isso foi utilizada a biblioteca ACBrLibConsultaCNPJ, de acordo com o roteiro a seguir: Configurando o ambiente: Demonstrado como habilitar o FFI no php, baixar a biblioteca, copiar a versão correta da biblioteca e suas dependências para a devida pasta. Rodando o programa de exemplo: Testados métodos do programa de exemplo disponível nos fontes do ACBr. Desenvolvimento da página inicial: Mostrada trilha da criação de uma página enxuta, mas funcional para o consumos dos métodos. Implementando o método Salvar Configurações: Demonstrando como consumir o primeiro método e interagir com a biblioteca. Implementando o método Carregar Configurações: Seguindo a linha de raciocínio do método anterior, mostrado como carregar as configurações que foram gravadas anteriormente. Implementando o método Consultar: Consumo do método principal da biblioteca para consulta do cnpj no provedor selecionado. Se você ainda não é assinante ACBr Pro, fale com nossos consultores comerciais e venha aproveitar este e os demais cursos exclusivos. Até mais!!! -
Olá pessoal, Foram disponibilizados os programas de exemplo em PHP, Singlethread e Multithread utilizando a ACBrLibBoleto na Rev-35124. ..\ACBr\Projetos\ACBrLib\Demos\PHP\Boleto\ACBrBoletoDemoST.php ..\ACBr\Projetos\ACBrLib\Demos\PHP\Boleto\ACBrBoletoDemoMT.php O programa de exemplo de boleto utiliza a ACBrComum.php, contendo métodos em comum entre os modos (ST e MT) e para todas as libs. ..\ACBr\Projetos\ACBrLib\Demos\PHP\ACBrComum\ACBrComum.php Continuamos trabalhando para trazer mais programas de exemplo para a comunidade PHP. Até mais!!!
-
Usar o ACBRLibNFSe com multi-threading (MT) com PHP
um tópico no fórum postou Weber de Paula ACBrLIB
Bom dia! Há dias estou tentando usar o ACBRLibNFSe com multi-threading (MT) no PHP. No modo single esta funcionando corretamente, porém ao tentar usar o MT ocorre um "crash" e para tudo sem log mesmo estando no modo paranóico. Fiz o teste com o Node.js conforme exemplo abaixo e funcionou corretamente com MT, então descarto problema na DLL, no entanto, estou postando aqui com o objetivo de obter apoio/auxilio de outras pessoas. No PHP, uso o FFI::cdef. Olhando o doc e o .pas da DLL vi que preciso enviar o ponteiro handle para inicializar a dll e depois usar o mesmo ponteiro para demais métodos. No meu código consigo inicializar porém ocorre crash (erro sem log) ao tentar finalizar, creio que o handle está errado e o finalizar não encontra o ponteiro do inicializar. Ambiente: PHP 8.2, apache, Windows 10 x64 Código de teste: header da dll Referência -
É possível utilizar o AcBr com um sistema PHP para PDV?
um tópico no fórum postou Sabatini Dúvidas Gerais sobre o ACBr
Olá, estou desenvolvendo um sistema em PHP PDV para um comércio e gostaria de saber se é possível a utilização do AcBr para este projeto. Se sim, quais os passos que devo seguir a diante? E se não, qual linguagem indicada para a utilização? Agradeço desde já! -
Olá pessoal, recentemente precisei usar no PHP o ACBrLib, e por isso compartilho aqui a biblioteca que criei para realizar as chamadas. Para isso, foi utilizado o PHP 7.4 como FFI ativado. A biblioteca é super fácil, ou seja, a partir do exemplo da chamada para o boleto (que eu criei inicialmente) você pode facilmente extender para outras partes do ACBr. Lemrbando que a DLL foi compilada usando o padrão cdecl. https://packagist.org/packages/erycson/acbrlib-php Bibliotecas do ACBr não inclusas
-
Olá, Estamos tentando utilizar a ACBRLIbNFE com a nova classe FFI da versao 7.4 PHP. <?php $ffi = FFI::cdef('int (NFE_Nome)(const char* sNome, int* esTamanho);', './libacbrnfe64.so'); $nomeBuffer = FFI::new('char[11]'); $nomeTamanhoLength = FFI::new('int'); $nomeTamanhoLength->cdata = 11; $retorno = $ffi->NFE_Nome($nomeBuffer, FFI::addr($nomeTamanhoLength)); var_dump($retorno); var_dump($nomeBuffer); Após a execução do código, a variável $retorno tem o valor -1, e a variável $nomeBuffer está assim: class FFI\CData#2 (11) { public ${0} => string(1) "\000" public ${1} => string(1) "\000" public ${2} => string(1) "\000" public ${3} => string(1) "\000" public ${4} => string(1) "\000" public ${5} => string(1) "\000" public ${6} => string(1) "\000" public ${7} => string(1) "\000" public ${8} => string(1) "\000" public ${9} => string(1) "\000" public ${10} => string(1) "\000" } Alguém pode dar alguma ajuda para executar corretamente esse trecho de código? Att.
-
Leitura de porta serial (COM ou LPT) com PHP ou CMD
um tópico no fórum postou Fernando Rafael Dúvidas não relacionadas ao ACBr
Boa tarde, estou tendo problemas com leitura de portas com php, segue o código: exec('MODE COM1:9600,n,8,1'); //seta configuração na porta COM $fp=fopen("COM1","r+b"); if(!$fp) { echo("Erro ao abrir a porta com1"); exit; } else { echo("COM1 aberta <br>"); } fwrite($fp,Chr(5)); //escrevendo valor na porta sleep(1); //pausa para retorno dos dados echo (fgets($fp)); fclose($fp); já tentei colocar: fopen("COM1", "r+b"); fopen("COM1", "r+t"); fopen("COM1", "r"); fopen("COM1", "w+"); fopen("COM1", "r+"); Consigo facilmente escrever na mesma, mas quando uso algum comando de leitura (fread($fp); ou fgets($fp); ) a mesma trava, também tentei limitar o tamanho da leitura (fread($fp, 1024); ou fgets($fp, 1024); ) mas sem sucesso também... Se alguém tiver uma solução com CMD também ajudaria já que posso executar por comando "exec" do PHP. Nos tutoriais que vejo na internet, muitos que tinham esse problema, conseguiram no Linux, pois estavam relacionados a permissão de usuários, já no Windows não achei nada sobre... E sim, sei que muitos vão indicar que se use Delphi, C#, Java e etc... mas preciso mesmo que seja em PHP ou em qualquer linha de comando... -
Boa noite pessoal! Desenvolvi um gerador de assinatura AC, utilizando certificado da Software House em .pem; Bem simples, porém funcional; Pra quem precisar, seguem os prints e o código; Espero ajudar! Abraços! 2020-01-16--Assinatura AC para SAT.zip
-
Boa Tarde. Temos projeto de mudança de linguagem de programação do Delphi para PHP. Atualmente utilizamos o ACBr para NFe, GNRE, NFSe, SAT e MDFe, com a mudança para PHP como faço para continuar usando o ACBr para emissão de documentos fiscais ? Obrigado.
-
Boa tarde amigos, tudo bem? Sou novo na comunidade, gostaria de agradecer por este grande projeto. Podem me ajudar com uma dúvida, por favor? Desculpem se este não é o local certo para este tipo de dúvida, mas não achei outro que se enquadrasse melhor. Tenho um pequeno comércio e estou desenvolvendo meu próprio ERP com PDV. Sempre noto que para emitir cupons fiscais via SAT (estou em SP) se faz necessário informar o CNPJ da software house e sua assinatura. Porém, neste caso não há software house envolvida. Como devo proceder nesse caso? Outra coisa: estou desenvolvendo o sistema em PHP, o mesmo vai rodar em um servidor Web (HostGator) em Linux. O AcbrMonitor precisa ser instalado localmente (no computador caixa, onde estão o SAT e a impressora) ou no servidor da HostGator? Gostaria de poder testar o AcbrMonitor antes de me associar ao projeto, para poder justificar o investimento. Podem me ajudar, por favor? Muito obrigado!
- 9 replies
-
- php
- acbrmonitor
-
(e 1 mais)
Tags:
-
Olá. Vi que existe o projeto ACBR em PHP. Ele já está funcional? Tem a mesma política de licença que o ACBR Delphi?
-
Boa Tarde, eu criei um sistema em PHP de emissão de CUPOM FISCAl com o ACBRmonitor Plus 1.2.0.41, ele está funcionando localmente, emitindo cupons, imprimindo tudo certo, porém o PHP é uma linguagem SERVER, e o acbr fica localmente (máquina do usuário), então quando eu subo meu sistema em php no meu server para funcionar via web ele perde a comunicação com o ACBR, existe alguma alternativa para o ACBR comunicar com meu sistema no servidor? se sim, poderiam me informar como? Obrigada
