Tive a necessidade a alguns dias de através do CEP passado retornar algumas informações como logradouro, cidade, estado, bairro, etc… pesquisando um pouco vi que existem diversos serviços RESTful que retornam essas informações, porém nada padronizado, além disso nada me garantiria que esses serviços estivessem no ar.
Para isto criei um repositório no GIT com classes que consumam esses web services com efeito cascata, caso um deles não estiver disponível a classe tentará o próximo serviço até conseguir preencher todas as informações para retorno ou acabe a lista de serviços.
Repositório no GITHub
O projeto se resume a duas classes:
Localizacao: Faz a busca pelos dados na web
Network: Verifica se o site está disponível
Exemplo:
$localizacao = Localizacao::getArrayByCep('89050000');
print_r($localizacao);
//array() = ('cep','89050000','logradouro','Avenida Brasil', 'bairro','Ponta Aguda', 'cidade','Blumenau','uf','Santa Catarina')