Download the PHP package risetechapps/geonames-for-laravel without Composer
On this page you can find all versions of the php package risetechapps/geonames-for-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download risetechapps/geonames-for-laravel
More information about risetechapps/geonames-for-laravel
Files in risetechapps/geonames-for-laravel
Package geonames-for-laravel
Short Description Coleção de dados sobre região, países, estados e cidades.
License MIT
Informations about the package geonames-for-laravel
Geonames - RiseTech Apps
O Geonames é um pacote Laravel projetado para gerenciar dados geográficos globais (Regiões, Países, Estados e Cidades) com foco em ultra-performance e arquitetura multi-tenant.
A arquitetura do pacote utiliza um carregamento em árvore (Tree-loading), segmentando os dados em arquivos JSON específicos por região. Isso garante que apenas o conteúdo geográfico necessário seja carregado na memória, economizando recursos do servidor.
📥 Instalação
1. Instale o pacote via Composer
2. Execute o instalador
Este comando irá:
- ✅ Publicar o arquivo de configuração
- ✅ Perguntar se deseja criar migration para Models
- ✅ Baixar os dados geográficos (regiões, países, estados, cidades)
3. Ou baixe os dados manualmente
Se preferir baixar os dados separadamente:
💡 Dica: Baixar todos os 250 países consome ~100MB de disco e requer ~512MB de RAM. Para a maioria das aplicações, baixar apenas os países necessários é suficiente.
Estrutura de Dados Baixados
Após a instalação, os dados são organizados assim:
Nota: Os dados são armazenados em
resources/geonames/json/para evitar conflitos com outros pacotes.
Configuração (.env)
🛠 Estrutura de Pastas
Para que o pacote funcione corretamente, os dados JSON devem seguir esta hierarquia no diretório de recursos:
resources/geonames/json/{COUNTRY_ISO3}/{STATE_ISO2}/index.json
📖 Como Usar
1. País (Country)
Instancie um país usando o código ISO2 ou o Nome. A busca é case-insensitive.
2. Estados de um País (States)
Para obter todos os estados de um país, use o método states() e depois all():
3. Estado Específico (State)
Para buscar um estado específico:
4. Cidades (Cities)
As cidades são carregadas sob demanda através do estado:
5. Uso com Helper Global
🧬 API de Métodos
Objeto Country
Propriedades
getName(): Retorna o nome internacional.getNative(): Retorna o nome nativo do país.getIso2()/getIso3(): Retorna os códigos padrão ISO.getPhoneCode(): Retorna o DDI (ex: 55).getCurrencySymbol(): Retorna o símbolo da moeda (ex: R$).getEmoji(): Retorna a bandeira do país em formato Emoji.getTimezone(): Retorna o fuso horário principal.
Relacionamentos
states(): Retorna objetoStates(repositório).- Use
$country->states()->all()para obter Collection.
- Use
state('SP'): Retorna umStateespecífico.
Objeto States (Repositório)
all(): Retorna Collection de todos os estados.first(): Retorna o primeiro estado.count(): Retorna o total de estados.search('termo'): Busca por nome parcial.paginate(20, 1): Retorna array paginado.find('SP'): Busca estado por código/nome.
Objeto State
Propriedades
getName(): Nome completo do estado.getIso2(): Sigla/UF (ex: AC, SP, RJ).getCountry(): Retorna o objetoCountrypai.
Relacionamentos
cities(): Retorna objetoCities(repositório).- Use
$state->cities()->all()para obter Collection.
- Use
city('São Paulo'): Retorna umaCityespecífica.
Objeto Cities (Repositório)
all(): Retorna Collection de todas as cidades.first(): Retorna a primeira cidade.count(): Retorna o total de cidades.search('termo'): Busca por nome parcial.paginate(50, 1): Retorna array paginado.
Objeto City
getName(): Nome da cidade.getLatitude()/getLongitude(): Coordenadas geográficas.toArray(): Retorna array com todos os dados.
Objeto Geonames (Helper)
⚠️ Padrão de Repositório (Lazy Loading)
O Geonames utiliza um padrão de repositório para carregamento lazy de dados:
Por quê? Isso permite carregar dados sob demanda, com cache e paginação eficientes.
⚡ Performance e Cache
O Geonames utiliza o driver de cache nativo do Laravel para armazenar os dados processados por 24 horas (86400 segundos). O cache é segmentado por chaves únicas baseadas na hierarquia geográfica (ex: geonames.cities.BRA.SP), o que otimiza drasticamente o tempo de resposta e evita I/O de disco desnecessário.
Comandos Artisan
⚠️ Atenção: Comandos que processam todos os países (
--all) consomem ~512MB de RAM. Use--country=XXpara processar países específicos e economizar memória.
🛠️ Requisitos
| Dependência | Versão mínima |
|---|---|
| PHP | 8.3 |
| Laravel | 12.x |
🧑💻 Autor
Rise Tech
📧 [email protected]
🌐 https://risetech.com.br
💼 https://github.com/risetechapps
🧩 Trait HasGeonames (Para Models)
Adicione suporte geográfico a qualquer Model do Laravel.
Instalação
Uso Básico
Comando de Instalação
Veja a documentação completa para mais exemplos.
🪪 Licença
Distribuído sob a licença MIT. RiseTech Apps © 2025.