Introdução ao Hyperf: Um guia básico para iniciantes

Reinan Gabriel
10 min readMay 20, 2023

--

Nesta publicação, exploraremos o contexto histórico das aplicações PHP, onde a ausência de suporte para código assíncrono impactava negativamente o desempenho e a escalabilidade dos projetos. Abordaremos o surgimento do framework Hyperf, uma solução inovadora para lidar com esses desafios de programação assíncrona.

Também discutiremos as empresas que já adotaram o Hyperf para o desenvolvimento de suas aplicações web, destacando sua relevância no mercado atual. Além disso, vou guiar você na criação de um projeto simples em Hyperf, utilizando o Docker para configurar o ambiente. Esse processo envolverá a execução de comandos específicos para gerar a estrutura inicial e o arquivo de configuração.

Por fim, compartilharei algumas dicas valiosas para o estudo do Hyperf, visando aprofundar seu conhecimento nesse framework promissor. Esteja preparado para descobrir como o Hyperf pode impulsionar a eficiência, escalabilidade e desempenho de suas aplicações web.

Contexto histórico

Durante muito tempo, a linguagem de programação PHP foi uma escolha popular para o desenvolvimento de aplicações web. Sua popularidade se deve a vários fatores, incluindo sua fácil aprendizagem, ampla documentação, vasta comunidade de desenvolvedores e uma ampla variedade de frameworks disponíveis. Além disso, o PHP tinha um modelo de execução síncrona, o que facilitava a escrita de código para aplicações web mais simples e com requisitos de processamento menos intensivos.

No entanto, com a evolução da tecnologia e o aumento das demandas de desempenho e escalabilidade, o mercado está mudando para aplicações que trabalham de forma assíncrona. A programação assíncrona permite que várias operações de entrada e saída sejam executadas simultaneamente, sem bloquear a execução do programa, o que resulta em um melhor aproveitamento dos recursos do sistema e em tempos de resposta mais rápidos.

A transição para aplicações assíncronas é impulsionada por várias razões. Primeiro, o aumento do tráfego na web e o crescimento do número de usuários exigem que as aplicações sejam capazes de lidar com um grande número de requisições simultâneas. A programação assíncrona permite que as aplicações gerenciem eficientemente essas requisições, melhorando o desempenho e a escalabilidade.

Além disso, as aplicações modernas frequentemente dependem de operações intensivas de entrada e saída, como chamadas a APIs externas, acesso a bancos de dados e integração com serviços de terceiros. A programação assíncrona permite que essas operações sejam executadas de forma não bloqueante, o que ajuda a evitar gargalos de desempenho e a melhorar a capacidade de resposta do sistema.

Em suma, a linguagem de programação PHP foi amplamente utilizada no passado devido à sua facilidade de uso e ao modelo de execução síncrona que se adequava bem a muitos casos de uso. No entanto, com o aumento das demandas de desempenho, escalabilidade e interatividade em tempo real, o mercado está migrando para aplicações assíncronas.

Como surgiu o Hyperf?

Com a crescente importância da programação assíncrona para atender às demandas das aplicações web modernas, surgiu o framework Hyperf em 2018, destinado a trazer soluções para a programação assíncrona utilizando a linguagem de programação PHP. Ao contrário de muitos outros frameworks disponíveis no mercado para PHP, o Hyperf foi concebido desde o início para se adaptar aos novos padrões exigidos pelo mercado para aplicações modernas. Isso significa que todos os componentes do framework foram desenvolvidos tendo em mente a utilização da programação assíncrona.

Agora que temos uma compreensão do contexto que levou à criação do Hyperf, vamos explorar como o framework incorporou programação assíncrona em seu código, superando a falta desse recurso na linguagem de programação PHP por padrão.

Para resolver esse desafio, o Hyperf aproveitou o ecossistema Swoole. Em resumo, o Swoole é uma biblioteca para o PHP que permite a execução de código de forma assíncrona. Nos próximos detalhes, discutiremos mais profundamente sobre o Swoole e o Hyperf, fornecendo informações mais detalhadas sobre essas tecnologias e como elas se relacionam.

Vamos agora explorar com mais detalhes tanto o Swoole quanto o Hyperf, destacando suas características, recursos e como eles trabalham em conjunto para fornecer uma solução robusta e eficiente para a programação assíncrona em PHP.

O que é o Swoole?

O Swoole é uma biblioteca para rede assíncrona em PHP que proporciona um ambiente de execução de alto desempenho e suporte para programação assíncrona. Diferentemente do modelo de execução síncrona tradicional do PHP, o Swoole permite que os desenvolvedores escrevam código assíncrono e aproveitem as vantagens da programação não bloqueante.

Uma das principais características do Swoole é a sua arquitetura assíncrona, que permite que várias operações de entrada e saída sejam processadas simultaneamente, sem bloquear a execução do programa. Isso resulta em um melhor aproveitamento dos recursos do sistema, maior escalabilidade e tempos de resposta mais rápidos para as aplicações.

Em resumo, o Swoole é uma biblioteca para rede assíncrona em PHP que permite o desenvolvimento de aplicações web de alto desempenho, escaláveis e eficientes. Com sua arquitetura assíncrona e recursos avançados, o Swoole tem se tornado uma escolha popular para aqueles que desejam aproveitar ao máximo o potencial do PHP em aplicações de alta carga e tráfego intenso.

O que é o Hyperf?

O Hyperf é um framework PHP de alto desempenho para o desenvolvimento de aplicações web, baseado no ecossistema Swoole, uma biblioteca para rede assíncrona em PHP. Inspirado pelo Laravel e outros frameworks populares, o Hyperf foi desenvolvido com o objetivo de fornecer uma solução eficiente e escalável para a criação de aplicações modernas.

Lançado em 2018, o Hyperf foi projetado desde o início para se destacar em termos de performance, microsserviços e componentes desacoplados. Diferentemente de muitos outros frameworks no mercado, como Laravel, Symfony e Slim, o Hyperf não foi adaptado para utilizar o Swoole, mas sim concebido para trabalhar em conjunto com ele. Todos os seus componentes foram desenvolvidos considerando o uso do Swoole, proporcionando uma integração harmoniosa entre as tecnologias.

Com o Hyperf, os desenvolvedores podem aproveitar ao máximo as capacidades assíncronas do Swoole, permitindo que suas aplicações lidem com um grande número de requisições simultâneas e tenham um desempenho excepcionalmente rápido. Além disso, o framework adota uma abordagem modular, baseada em componentes, o que facilita a reutilização de código, a manutenção e a escalabilidade do projeto.

A comunidade do Hyperf está em constante evolução, garantindo que o framework permaneça atualizado e mantido com melhorias contínuas. Com uma documentação abrangente e uma comunidade ativa, os desenvolvedores podem contar com suporte e recursos para aproveitar ao máximo o potencial do Hyperf em seus projetos de desenvolvimento de aplicações PHP.

Principais recursos do Hyperf

Veja uma lista com as principais funcionalidades que esse framework oferece:

  1. Alta performance: O Hyperf aproveita as capacidades assíncronas do Swoole para oferecer um desempenho excepcionalmente rápido. Ele é capaz de lidar com um grande número de requisições simultâneas, o que o torna ideal para aplicações de alta carga e tráfego intenso.
  2. Arquitetura baseada em componentes: O Hyperf adota uma arquitetura baseada em componentes, onde cada funcionalidade é encapsulada em um componente independente. Isso promove a reutilização de código, facilita a manutenção e torna o desenvolvimento mais modular.
  3. Suporte nativo para programação assíncrona: O Hyperf oferece suporte nativo para programação assíncrona, permitindo que os desenvolvedores escrevam código mais eficiente e conciso. Isso é especialmente útil em situações em que é necessário lidar com operações de entrada e saída intensivas, como chamadas a APIs externas ou acesso a bancos de dados.
  4. Ecossistema extensível: O Hyperf possui um ecossistema extensível, com uma variedade de pacotes e componentes disponíveis para ampliar suas funcionalidades. Isso permite que os desenvolvedores escolham os componentes que melhor atendam às necessidades específicas de suas aplicações.
  5. Suporte para contêineres de injeção de dependência: O Hyperf suporta contêineres de injeção de dependência, como o popular contêiner PSR-11, o que facilita a organização e o gerenciamento de dependências em um projeto. Isso contribui para um código mais limpo e modular, além de facilitar a manutenção e o teste de unidades.

Principais diferenciais do Hyperf em relação a outros frameworks PHP populares

O Hyperf se diferencia de outros frameworks PHP populares, como o Laravel e o Symfony, por seu suporte nativo à programação assíncrona, foco em desempenho e escalabilidade, arquitetura orientada a microsserviços, ecossistema específico e flexibilidade personalizável. Essas características tornam o Hyperf uma escolha atraente para o desenvolvimento de aplicações web que exigem alto desempenho e lidam com um grande volume de requisições assíncronas.

Quais empresas utilizam esse framework?

Atualmente, várias empresas adotam o uso do Hyperf em suas aplicações. É importante ressaltar que essa lista continua a crescer à medida que mais pessoas colaboram e compartilham suas informações no GitHub. Se você deseja visualizar essas informações, basta acessar este link.

  1. PicPay
  2. MOVA SEP
  3. Linksoft
  4. MangaToon

É interessante observar que existem duas empresas de grande porte no Brasil que utilizam esse framework. Se você conhece outras empresas que também utilizam o Hyperf ou se a sua empresa é uma delas, convido você a contribuir com a comunidade adicionando essas informações ao repositório no GitHub. Sua contribuição será valiosa para compartilhar conhecimento e fortalecer a comunidade em torno do Hyperf.

Como criar um projeto em Hyperf usando Docker

Antes de começar a criar seu primeiro projeto no Hyperf, é importante garantir que você tenha o Docker instalado em sua máquina local. A instalação do Hyperf é um processo simples e fácil, independentemente do sistema operacional que você esteja usando. Para criar seu primeiro projeto, basta executar o seguinte comando:

docker run --rm \
--pull=always \
-v "$(pwd)":/opt \
-w /opt \
hyperf/hyperf:8.1-alpine-v3.16-dev \
bash -c "composer create-project hyperf/hyperf-skeleton ./example-app"

Ao executar o comando mencionado anteriormente, uma pasta chamada “example-app” será criada, contendo todos os arquivos da estrutura do projeto no Hyperf. Agora, você precisa acessar essa pasta e prosseguir com a criação do arquivo “docker-compose.yml”. Adicione o conteúdo abaixo no arquivo:

version: '3'
services:
app:
container_name: "hyperf-example-app"
image: hyperf/hyperf:8.1-alpine-v3.15-swoole
working_dir: /data/project
tty: true
volumes:
- '.:/data/project'
networks:
- web
ports:
- "9501:9501"
networks:
web:
driver: bridge

Após realizar a criação do arquivo execute os seguintes comandos:

docker compose run -p "9501:9501" --rm app bash -c "composer install && composer start"

Após executar o comando mencionado acima, a aplicação Hyperf estará em execução. Agora, vamos fazer uma requisição à aplicação para verificar a resposta que ela retorna. Existem duas maneiras de fazer isso:

  • A primeira é acessar a URL http://localhost:9501 em seu navegador.
  • Alternativamente, você também pode utilizar o comando curl http://localhost:9501 para realizar a requisição.

Se você preferir, há várias configurações adicionais interessantes que você pode adicionar ao seu projeto. Caso queira explorar mais essas configurações, recomendo dar uma olhada em um projeto de template que criei no GitHub, onde você encontrará essas configurações já incluídas.

Próximos passos após a criação do seu primeiro projeto em Hyperf

Após criar seu primeiro projeto, é recomendado que você explore a estrutura de arquivos do framework. Se você já está familiarizado com o Laravel, notará semelhanças na estrutura. Além disso, é altamente recomendado que você consulte a documentação oficial do Hyperf para entender como as coisas funcionam e como adicionar componentes ao seu projeto.

À medida que você estuda esse framework, é aconselhável criar projetos básicos para praticar e aplicar o que aprendeu. Essa prática ajudará a aprofundar seu conhecimento e a se familiarizar com os recursos do Hyperf.

Ideias de projetos para estudo utilizando o Hyperf

Aqui estão algumas ideias de projetos que você pode criar em Hyperf para aprimorar seus estudos:

  1. API RESTful: Crie uma API RESTful utilizando o Hyperf para criar endpoints que possam ser consumidos por outros aplicativos ou serviços.
  2. Sistema de Gerenciamento de Tarefas: Desenvolva um sistema de gerenciamento de tarefas com recursos de criação, atualização e exclusão de tarefas.
  3. Chat em Tempo Real: Implemente um chat em tempo real utilizando o Hyperf e recursos assíncronos, permitindo que os usuários se comuniquem em tempo real.
  4. Blog ou CMS: Construa um blog ou sistema de gerenciamento de conteúdo (CMS) com recursos de criação, edição e exclusão de postagens, além de gerenciamento de categorias e tags.
  5. E-commerce Simples: Crie um e-commerce básico com funcionalidades como exibição de produtos, adição ao carrinho de compras, finalização de pedido e processamento de pagamentos.
  6. Aplicativo de Clima: Integre uma API de previsão do tempo e crie um aplicativo que exiba informações climáticas para diferentes cidades.
  7. Sistema de Autenticação e Autorização: Implemente um sistema de autenticação e autorização utilizando recursos do Hyperf, como JWT (JSON Web Tokens) ou OAuth.
  8. Plataforma de Eventos: Desenvolva uma plataforma para criação e gerenciamento de eventos, permitindo que os usuários criem eventos, se inscrevam e interajam com outros participantes.

Essas são apenas algumas ideias para começar. Sinta-se à vontade para adaptar os projetos de acordo com seus interesses e necessidades de aprendizado. Lembre-se de explorar a documentação oficial do Hyperf e buscar por recursos adicionais que possam ajudá-lo a desenvolver seus projetos.

Conclusão

Em conclusão, o Hyperf é um framework PHP de alto desempenho que oferece suporte à programação assíncrona e é baseado no ecossistema do Swoole. Com seu foco em alta performance, microsserviços e componentes desacoplados, o Hyperf se destaca como uma solução eficiente e escalável para o desenvolvimento de aplicações web modernas.

Ao contrário de muitos outros frameworks PHP populares, o Hyperf foi projetado desde o início para trabalhar de forma nativa com o Swoole, aproveitando os recursos assíncronos e de rede oferecidos por essa biblioteca. Isso permite que o Hyperf aproveite ao máximo a programação assíncrona, resultando em um desempenho excepcional e uma melhor capacidade de lidar com um grande número de requisições simultâneas.

À medida que o mercado de desenvolvimento de aplicações web evolui, a programação assíncrona se torna cada vez mais importante para atender às necessidades de escalabilidade e desempenho. O Hyperf surge como uma solução promissora nesse contexto, permitindo que os desenvolvedores aproveitem ao máximo os recursos assíncronos do PHP por meio do Swoole.

Com seu conjunto de recursos impressionantes e a capacidade de lidar com a programação assíncrona de forma eficiente, o Hyperf se destaca como uma opção promissora para o desenvolvimento de aplicações web modernas e de alto desempenho.

Referências bibliográficas

Esta publicação foi embasada em algumas referências bibliográficas, que foram fundamentais para a construção do conteúdo apresentado. Recomendamos a leitura dessas referências, a fim de obter uma compreensão mais aprofundada do tema abordado neste artigo. Ao consultar essas fontes, você terá acesso a informações adicionais e poderá explorar aspectos específicos do Hyperf com mais detalhes.

--

--