Download the PHP package paulosscruz/senior-g5-php without Composer
On this page you can find all versions of the php package paulosscruz/senior-g5-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download paulosscruz/senior-g5-php
More information about paulosscruz/senior-g5-php
Files in paulosscruz/senior-g5-php
Package senior-g5-php
Short Description Gerador de classes para utilizar o Web Service G5 do ERP Senior.
License MIT
Informations about the package senior-g5-php
PHP Senior G5
Esta biblioteca mapeia os serviços da tecnologia G5 da Senior em um conjunto de classes PHP.
Instalação
Adicione senior-g5-php no seu projeto via Composer:
Suporte
Atualmente, esta biblioteca suporta todos os serviços da tecnologia G5 disponíveis na documentação oficial da Senior.
Versão | Sistema | Suporte |
---|---|---|
5.8.10 | ERP Senior | SIM |
5.8.11 | ERP Senior | SIM |
5.10.1 | ERP Senior | SIM |
6.2.33 | VetoRH | SIM |
6.2.34 | VetoRH | SIM |
6.2.35 | VetoRH | SIM |
Como funciona
Após o mapear o WSDL do serviço, será gerada uma classe principal que conterá um método para cada porta disponível, juntamente com um conjunto auxiliar de classes que mapeia todos os atributos de entrada e saída de suas respectivas portas.
Para isso, é necessário obter o WSDL do serviço que sera mapeado, você pode encontra-lo na documentação oficial da Senior.
Você utilizará o comando generator
via prompt para mapear o WSDL, abaixo a lista de argumentos disponíveis:
Argumento | Descrição | Obrigatório? |
---|---|---|
--wsdl |
URL WSDL do serviço (Disponível na documentação oficial da Senior). | SIM |
--serviceName |
Nome do serviço (Este será o nome da classe principal). | SIM |
--outputDir |
Diretório onde as classes geradas serão armazenadas (Por padrão, será criado um diretório adional a partir daqui para cada serviço mapeado). | SIM |
--operationNames |
Alguns serviços possuem muitas portas diferentes ou versões de uma mesma porta, portanto, aqui você pode especificar quais dessas portas você deseja mapear. | NÃO |
--namespace |
Especificar o namespace das classes que serão geradas, se não for informado as classes não terão um namespace. | NÃO |
Neste exemplo, vamos utilizar o serviço com.senior.g5.co.ger.cad.clientes
que possue várias portas, entre elas obterCliente
que é capaz de obter o cadastro de um cliente especifico.
Mapeando o WSDL
ATENÇÃO: Lembre-se de executar este comando na raiz do seu projeto.
As classes serão geradas no diretório senior/services/Clientes
, lembrando que a biblioteca sempre cria um diretório adicional a partir de outputDir
, para separar as classes por serviço e evitar problemas de duplicidade.
Neste caso, teremos a classe Clientes.php
com todos os métodos que representam as portas disponíveis neste serviço. O método obterClientes
possui a seguinte assinatura:
As classes
clientesobterClienteIn
eclientesobterClienteOut
são geradas automaticamente para mapear os atributos de entrada e saída da requisição.
Observação: Essas classes são nomeadas de acordo com o Stub dos Web Services da Senior, portanto, muitas vezes seu nome pode ser pouco conveniente ou longo demais. Estou trabalhando para melhorar isso.
Agora, basta utilizar a classe principal para acessar o Web Service G5 da Senior, como no exemplo abaixo:
Observação: Cada serviço terá em seu diretório um arquivo
autoload.php
responsável por mapear e incluir a classe principal e as auxiliares automaticamente.
Mapeando portas especificas do WSDL
Alguns serviços possuem muitas portas diferentes ou versões de uma mesma porta. Utilizando o argumento --operationNames
ao mapear o WSDL, você pode filtrar as portas que deseja mapear e evitar trabalho e código desnecessário.
Para mapear mais de uma porta, basta passar uma lista com todas separadas por uma vírgula e entre aspas.
Trabalhando com namespaces
Para especificar o namespace das classes que serão geradas, você deve utilizar o argumento --namespace
ao mapear o WSDL.
Agora, você pode trabalhar utilizando os namespaces do PHP.
Observação: Considere criar namespaces indepentes para cada serviço, evitando problemas com duplicidade.
Limitações
Por padrão a classe principal mantém o endereço do Web Service fixo em sua implementação, portanto, sempre que você houver alterações no endereço onde o seu servidor de aplicação (Glassfish) fica hospedado, você deverá mapear novamente todos os serviços utilizados.
Alternativa
Se você reparar na implementação da classe principal, vai ver que o seu construtor possui alguns parâmetros que podem ser passados opcionalmente.
Sugiro que você realize uma implementação adicional em sua aplicação e crie uma configuração baseada em arquivo ou classe para armazenar o endereço de todos os serviços utilizados.
Após isso, basta passar o endereço sempre que a classe principal for instanciada.
Créditos
Licença
senior-g5-php está licenciado sob a MIT License.
All versions of senior-g5-php with dependencies
ext-soap Version *
ext-json Version *
wsdl2phpgenerator/wsdl2phpgenerator Version ^3.4