fbraz3/brz-cep-module

Modulo em Zend Framework 2 para consulta de endereco via CEP


Keywords
framework, zend, zf2, cep, correios, endereco, modulo
License
BSD-3-Clause

Documentation

BrzCepModule

Módulo em Zend Framework 2 para consulta de endereço via CEP com cache em banco de dados

Pré-Requisitos

  • É necessário que o ORM Doctrine esteja instalado em seu projeto zend.
  • Seu orm deve responder através do serviceLocator por 'doctrine.entitymanager.orm_default'

Diferenciais do módulo

  • Retorno padrão em json (sem necessidade de parâmetros adicionais)
  • Usa o banco de dados para cache de query.

To-Do

  • Round Robin entre os webservices disponíveis
  • Contingência em caso de falha na resposta de algum webservice

Instalação

Instalação via clone

Clonar o projeto BrzCepModule na pasta "./vendor" ou "./module" no seu projeto em Zend Framework 2

    $ cd PASTA_DO_SKELETON_DO_ZEND_FRAMEWORK2
    $ cd vendor
    $ git clone https://github.com/fbraz3/BrzCepModule.git

Instalação via composer

Adicionar o projeto BrzCepModule no seu composer.json:

     "repositories": [
         {
           "type": "git",
           "url": "https://github.com/fbraz3/BrzCepModule"
         }
       ],
       "require": {         
         "fbraz3/brz-cep-module": "dev-master"
       },

Executar o comando "update" ou "install" do composer para fazer download do BrzCepModule

    $ php composer.phar update
Método 2

Executar o comando "require" do composer para atualizar o seu composer.json e efetuar o download do BrzCepModule

    php composer.phar require fbraz3/infanatica-cep-module dev-master

Após a Instalação

Adicionar ao seu arquivo application.config.php

    <?php
    return array(
        'modules' => array(
            // ...
            'BrzCepModule',
        ),
        // ...
    );

Executar em seu banco de dados o arquivo table.sql

Utilização do Service

Exemplo no \Application\Controller\InderController

    <?php
    //...
    class IndexController extends AbstractActionController
    {
        public function indexAction()
        {
            $cep = '21041020';

            // Possíveis formatos (json, xml, query, object, array)
            // null = \BrzCepModule\Response\EnderecoResponse
            $formato        = 'json';

            $serviceLocator = $this->getServiceLocator();
            $cepService     = $serviceLocator->get('BrzCepModule\Service\CepService');
            $endereco       = $cepService->getEnderecoByCep($cep,$formato);
            var_dump($endereco);

            return new ViewModel();
        }
    //...

Utilização do Controller

Exemplos de rota para:

\BrzCepModule\Controller\CepController

http[s]://domain/cep/NUMERO_DO_CEP

http[s]://domain/cep/21041020

http[s]://domain/cep/NUMERO_DO_CEP/FORMATO_DE_SAIDA

http[s]://domain/cep/21041020/json

http[s]://domain/cep/21041020/xml

Referências dos Adapters de pesquisa de CEP

ViaCEP

Postmon

Correio Control

Republica Virtual

Desenvolvido por

Felipe Braz (https://www.braz.pro.br/blog/)

Baseado no projeto InfanaticaCepModule