Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib para PHP no Windows


Mateus Brunelli
Ver Solução Respondido por Daniel InfoCotidiano,

Recommended Posts

  • Membros Pro


Boa tarde. Gostaria de saber se alguém já usa o ACBrNFe para PHP no WIndows? Preciso usar as dlls do ACBr numa aplicação em php puro (tem potencial pra migrar pra o Laravel), já tentei usar as demos, porém o código e a maioria dos tópicos no fórum são voltados pra o Linux, já tentei usar as Dlls do ACBrLib no php.ini mas no momento em que a aplicação é compilada (servida), recebo uma mensagem de que não foi possível carregar o modulo. Gostaria de saber como posso implementar o ACBrLib no meu código PHP no ambiente do windows.

image.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution
14 horas atrás, Mateus Brunelli disse:


Boa tarde. Gostaria de saber se alguém já usa o ACBrNFe para PHP no WIndows? Preciso usar as dlls do ACBr numa aplicação em php puro (tem potencial pra migrar pra o Laravel), já tentei usar as demos, porém o código e a maioria dos tópicos no fórum são voltados pra o Linux, já tentei usar as Dlls do ACBrLib no php.ini mas no momento em que a aplicação é compilada (servida), recebo uma mensagem de que não foi possível carregar o modulo. Gostaria de saber como posso implementar o ACBrLib no meu código PHP no ambiente do windows.

image.png

Uma dica, talvez vc ja tenha assistido é este video que vou postar abaixo, lembrando que a parte de instalar o lazarus e compilar a lib, pode pular e pegar lib pronta em nossa pagina de download.


 

  • Curtir 1
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em 13/01/2023 at 08:21, Daniel InfoCotidiano disse:

Uma dica, talvez vc ja tenha assistido é este video que vou postar abaixo, lembrando que a parte de instalar o lazarus e compilar a lib, pode pular e pegar lib pronta em nossa pagina de download.


 

Bom dia, sim, li todo este tópico e vi todo o video a respeito do uso da DLL, também segui a dica de usar apenas a DLL já compilada pela ACBrLib, mas infelizmente a própria demo é totalmente voltada pra a compilação em Linux, e meu ambiente tanto em teste quanto em produção é windows, por essa razão ainda não consegui fazer o codigo da ACBr rodar no PHP! Talvez seja pedir muito mas se já existe um jeito de fazer rodar no Windows, gostaria de um passo a passo, pois não tenho muita experiência no uso de DLLs no PHP!

Link para o comentário
Compartilhar em outros sites

  • Moderadores
5 horas atrás, Mateus Brunelli disse:

Bom dia, sim, li todo este tópico e vi todo o video a respeito do uso da DLL, também segui a dica de usar apenas a DLL já compilada pela ACBrLib, mas infelizmente a própria demo é totalmente voltada pra a compilação em Linux, e meu ambiente tanto em teste quanto em produção é windows, por essa razão ainda não consegui fazer o codigo da ACBr rodar no PHP! Talvez seja pedir muito mas se já existe um jeito de fazer rodar no Windows, gostaria de um passo a passo, pois não tenho muita experiência no uso de DLLs no PHP!

to enferrujado com php mas me de muito tempo lembro que só mesmo deve colocar a dll em local em que sejs possível o servidor xamp ver a dll.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde, pra facilitar os suportes vou descrever o que fiz em minhas tentativas até agora:

1°:  Copiei as DLLs  ACBrNFe64.dll da pasta bin\MT\Cdecl da pasta que baixei aqui no Site, e coloquei na pasta C:\xampp\php\ext que é a pasta onde ficam as extensões do PHP, e adicionei uma nova linha no php.ini especificando onde fica essa extensão e por fim desliguei e liguei novamente o apache. Quando tento usar a demo pra testar a extensão o resultado é esse:

image.thumb.png.0e84a05c962615b0161272a722ccff15.png

Isso sem contar que quando uso o phpinfo() ele não reconhece a extensão!

image.thumb.png.9a91345212ce01e4f654c067bea035dd.png

2°: Depois disso vi o video citado no tópico "Extensão PHP para uso do ACBrLib online! ACBrLibPHP" onde o cara fala sobre o que ele desenvolveu, e vi também que o código dele foi adaptado e usado na própria demo, porém o que acontece é que tudo que ele faz é voltado pra o linux, com comandos de bach, pra o linux, que compilam um código em C++ e transformam em uma DLL legível pra o PHP, essa extensão usa a DLL da ACBr. Porém meu ambiente é windows, por essa razão não consigo usar os comandos que existem na demo! O que gostaria é saber se alguém no ambiente windows já consegue usar o ACBrLib em PHP...

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 20/01/2023 at 18:05, Mateus Brunelli disse:

Boa tarde, pra facilitar os suportes vou descrever o que fiz em minhas tentativas até agora:

1°:  Copiei as DLLs  ACBrNFe64.dll da pasta bin\MT\Cdecl da pasta que baixei aqui no Site, e coloquei na pasta C:\xampp\php\ext que é a pasta onde ficam as extensões do PHP, e adicionei uma nova linha no php.ini especificando onde fica essa extensão e por fim desliguei e liguei novamente o apache. Quando tento usar a demo pra testar a extensão o resultado é esse:

image.thumb.png.0e84a05c962615b0161272a722ccff15.png

Isso sem contar que quando uso o phpinfo() ele não reconhece a extensão!

image.thumb.png.9a91345212ce01e4f654c067bea035dd.png

2°: Depois disso vi o video citado no tópico "Extensão PHP para uso do ACBrLib online! ACBrLibPHP" onde o cara fala sobre o que ele desenvolveu, e vi também que o código dele foi adaptado e usado na própria demo, porém o que acontece é que tudo que ele faz é voltado pra o linux, com comandos de bach, pra o linux, que compilam um código em C++ e transformam em uma DLL legível pra o PHP, essa extensão usa a DLL da ACBr. Porém meu ambiente é windows, por essa razão não consigo usar os comandos que existem na demo! O que gostaria é saber se alguém no ambiente windows já consegue usar o ACBrLib em PHP...

faz o seguinte pega a outra ao invés da CDECL pra usar

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
3 horas atrás, Mateus Brunelli disse:

Bom dia, Acabei de testar tua sugestão, e infelizmente o resultado é o mesmo, a biblioteca não é lida, nem exibida como extensão do php

Boa tarde.

vou pedir para que possa aguardar. montar um ambiente de testes semelhante ao seu windows. com php para simular.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

@Mateus Brunelli tente verificar os seguintes passos:

Tente copiar ACBrLib para System32 apenas para efeito de testes.. 
Use a função "dl()"  para carregar o ACBrLib, exemplo:
dl("ACBrNFe64.dll");

Se estiver utilizando PHP versão 7.4 ou superior, você precisa utilizar a extensão "php_ff" e "ffi".

Veja também se o caminho para ACBrLib esteja incluído na variável de ambiente "PATH" do sistema, caso contrário PHP pode não encontrar ACBrLib.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
27 minutos atrás, antonio.carlos disse:

@Mateus Brunelli tente verificar os seguintes passos:

Tente copiar ACBrLib para System32 apenas para efeito de testes.. 
Use a função "dl()"  para carregar o ACBrLib, exemplo:
dl("ACBrNFe64.dll");

Se estiver utilizando PHP versão 7.4 ou superior, você precisa utilizar a extensão "php_ff" e "ffi".

Veja também se o caminho para ACBrLib esteja incluído na variável de ambiente "PATH" do sistema, caso contrário PHP pode não encontrar ACBrLib.

Olá, minha versão do php é a 7.4, logo a função "dl()" está depreciada, já lancei a dll no System32 como está no manual do ACBrLib, infelizmente não teve efeito algum!
quanto as variáveis de ambiente, coloquei assim

image.thumb.png.b9d317d87fd66292cdcb06d6e83bbc04.png

e o resultado ainda é o mesmo... 
Pra seguir a tua sugestão, usei o seguinte código, habilitei a extensão no php.ini

image.thumb.png.1a95edd59b50d5e2361a0b0b49756f35.png

o resultado foi o seguinte erroimage.thumb.png.f726daed67cca4dc617948109769ad12.png

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
17 minutos atrás, Mateus Brunelli disse:

Olá, minha versão do php é a 7.4, logo a função "dl()" está depreciada, já lancei a dll no System32 como está no manual do ACBrLib, infelizmente não teve efeito algum!
quanto as variáveis de ambiente, coloquei assim

image.thumb.png.b9d317d87fd66292cdcb06d6e83bbc04.png

e o resultado ainda é o mesmo... 
Pra seguir a tua sugestão, usei o seguinte código, habilitei a extensão no php.ini

image.thumb.png.1a95edd59b50d5e2361a0b0b49756f35.png

o resultado foi o seguinte erroimage.thumb.png.f726daed67cca4dc617948109769ad12.png

Segundo as pesquisas que já venho fazendo, inclusive aqui na ACBr, a dll do ACBrLib é compilada em pascal, porém o php lê extensões apenas em C++, por essa razão acredito que não é possível que o php leia diretamente a dll do acbr, no post "Extensão PHP para uso do ACBrLib online! ACBrLibPHP"  , Pelo que eu entendi, o criador do Post cria um codigo em C++ que lê a dll do ACBrLib, depois disso ele compila o codigo em C++ e cria uma dll apartir desse código por fim, ele usa a dll recém criada como extenção do PHP, então a lógica fica assim:
ACBrLib64.dll > ExtencaoCriadaEmCpp.dll > CodigoEmPHP.php
Porém, tudo isso é voltado pra linux em todo o código, ou seja, onde seria dll vira so, isso inclui também os comandos de criação do linux, o arquivo MakeFile, entre outros arquivos que são voltados apenas pra a execução no linux

É possível que eu esteja errado, por essa razão vou continuar seguindo as sugestões que vocês forem me mandando... Obrigado

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia,

A solução ACBrLib tem por definição ser utilizada por qualquer linguagem que seja capaz de consumir bibliotecas (tanto .SO quanto .dll conforme  o caso), mas dado a infinidade de linguagens de programação que atendem esta premissa naturalmente não temos no time desenvolvedores com conhecimento profundo em particularidades destas linguagens.

Dado o exposto acima, pode ser util buscar outros  devs de PHP que talvez possam lhe ajudar a sanar esta questão mais facilmente.

At.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • 11 meses depois ...
  • Membros Pro
Em 23/01/2023 at 18:33, Mateus Brunelli disse:

Segundo as pesquisas que já venho fazendo, inclusive aqui na ACBr, a dll do ACBrLib é compilada em pascal, porém o php lê extensões apenas em C++, por essa razão acredito que não é possível que o php leia diretamente a dll do acbr, no post "Extensão PHP para uso do ACBrLib online! ACBrLibPHP"  , Pelo que eu entendi, o criador do Post cria um codigo em C++ que lê a dll do ACBrLib, depois disso ele compila o codigo em C++ e cria uma dll apartir desse código por fim, ele usa a dll recém criada como extenção do PHP, então a lógica fica assim:
ACBrLib64.dll > ExtencaoCriadaEmCpp.dll > CodigoEmPHP.php
Porém, tudo isso é voltado pra linux em todo o código, ou seja, onde seria dll vira so, isso inclui também os comandos de criação do linux, o arquivo MakeFile, entre outros arquivos que são voltados apenas pra a execução no linux

É possível que eu esteja errado, por essa razão vou continuar seguindo as sugestões que vocês forem me mandando... Obrigado

Mateus boa tarde

Vc teve sucesso em usar o ACBRLib no PHP em ambiente Windows?

Estou na mesma tentativa e até o momento não vi funcionar em ambiente Windows.

Fiz contato com a equipe de suporte PRO pelo Discord e até o momento nenhuma solução.

 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde pessoal

No svn temos alguns exemplos (contribuições da comunidade) em PHP, chegaram a analisar?


image.png

 

At.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Juliana!

Sim. Tentamos usar os exemplos porém eles referem-se somente o Linux e não tem um conteúdo simples.

Estamos tentando colocar o DLL no PHP no ambiente Windows porém sem sucesso. A DLL da ACBR para rodar em PHP precisa ser compilada para um extensão especifica do PHP e infelizmente não estamos conseguindo por conhecimento limitado ou talvez não funcione mesmo.

Eu comprei o suporte PRO achando que teria suporte acerca dessa compilação no PHP mas me explicaram que o suporte limita-se ao uso do DLL infelizmente mas é compreensivo devido a quantidade de linguagem que existem hoje em dia. 

Estamos na tentativa ainda porém sem sucesso até o momento. Tomará que a equipe do ACBR consiga essa "compilação" para PHP um dia.

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores

está estranho tu não conseguir rodar no php em windows.

pois e a mesma dll e os metodos estão todos documentados.

está me parecendo uma limitação de uso do php no windows e como usar dll´s nele. algo assim

você vai usar ela normal igual usa qualquer outra , mas vai ter que usar os métodos descritos na documentação

https://acbr.sourceforge.io/ACBrLib/InformacoesImportantes.html

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.