jot/hf-elastic

Elasticsearch service and migrations using etcd credentials for connection.

v0.17.15 2025-04-02 22:20 UTC

This package is auto-updated.

Last update: 2025-04-02 22:21:13 UTC


README

Descrição

O pacote jot/hf-elastic é uma solução completa para integrar o Elasticsearch com aplicações PHP baseadas no framework Hyperf. O objetivo principal é oferecer uma biblioteca que abstrai e facilita a utilização do Elasticsearch, fornecendo uma API fluente para construção de consultas, um sistema de migrations para gerenciar índices e comandos para administração via linha de comando.

Características

  • API fluente para construção de consultas (inspirada no Eloquent)
  • Sistema de migrations para gerenciar a estrutura dos índices
  • Comandos para gerenciar índices via linha de comando
  • Suporte para todos os tipos de campo do Elasticsearch
  • Integração com o sistema de injeção de dependência do Hyperf

Instalação

composer require jot/hf-elastic

Configuração

Após a instalação, execute o comando do Hyperf para gerar o arquivo de configuração:

php bin/hyperf.php vendor:publish jot/hf-elastic

Exemplo de Uso

O exemplo abaixo mostra como injetar o serviço em um controller para consultar e entregar os dados de um registro no Elasticsearch:

<?php

declare(strict_types=1);

namespace App\Controller;

use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpServer\Annotation\Controller;
use Hyperf\HttpServer\Annotation\GetMapping;
use Jot\HfElastic\Query\ElasticQueryBuilder;

#[Controller]
class UserController
{
    #[Inject]
    protected ElasticQueryBuilder $queryBuilder;

    #[GetMapping(path: '/users/{id}')]
    public function getUserData(string $id)
    {
        return $this->queryBuilder
            ->from('users')             
            ->where('id', '=', $id)    
            ->execute();                
    }
}

Documentação Detalhada

Para obter informações mais detalhadas sobre como usar o pacote, consulte a documentação completa disponível em:

Contribuindo

Contribuições são bem-vindas! Se você encontrar um bug ou tiver uma sugestão de melhoria, sinta-se à vontade para abrir uma issue ou enviar um pull request.

Licença

Este pacote é open-source e está disponível sob a licença MIT.

Apoie este projeto ❤️

Se você gostou deste projeto e quer apoiá-lo, considere fazer uma doação! Qualquer valor ajuda a manter este projeto ativo e em contínua evolução.