Posted on: January 29, 2020 12:18 PM
Posted by: Renato
Views: 281
https://github.com/swoole/swoole-src
Aplicações assíncronas com PHP, Swoole e Lumen
Um requisito básico de uma aplicação é sua eficiência na execução de sua tarefa. Com os anos passados desde a criação da computação, várias aproximações para os mais diversos problemas foram criadas para resolver esses problemas. Várias soluções foram criadas para solucionar esses problemas, e uma delas está fazendo sucesso para aplicações Web. Ela é atualmente muito utilizada em aplicações criadas usando C#, Java, Go, JavaScript, etc, e não poderia ser diferente com o PHP.
Para nos ajudar nessa solução, vamos usar um micro-framework web chamado Lumenque facilitará o manuseio das requisições. Já para as ferramentas necessárias para se trabalhar de forma assincronia a biblioteca Swoolefará esse trabalho. Para poder rodar tudo isso, vamos usar o PHP 7.3, mas lembre-se que tanto o Swoole quanto o Lumen rodam em versões anteriores do PHP.
Instalação
Antes de tudo, tenha em mente que você já deve ter instalado em sua maquina o PHP 7.3, Composer e o PECL. Infelizmente não irei abordar sobre a instalação deles, pois teria de tratar sobre cada peculiaridade existente em cada S.O. e em cada distribuição/versão.
Para começar, vamos instalar primeiramente a biblioteca Swoole, e para isso basta executar o comando a baixo (versão usada 4.2.12):
$ pecl install swoole
Depois disso podemos continuar instalando o Lumen (versão usada 5.7) executando:
$ composer global require "laravel/lumen-installer"
Com o Lumen e o Swoole instalado poderemos começar nosso projeto, para isso irei criar um projeto vazio com o nome async-api.
$ cd ~
$ lumen new async-api
$ cd async-api
Já dentro do projeto, você irá incluir nos requisitos do projeto o seguinte pacote PHP.
$ composer require swooletw/laravel-swoole
Agora com tudo que necessitamos instalado, falta agora só configura o Lumen, para isso, abra o arquivo ~/async-api/bootstrap/app.php e procure pela parte onde é registrado os Providers e adicione:
$app->register(SwooleTW\Http\LumenServiceProvider::class);
Pronto, basta iniciar seu projeto usando o código logo abaixo e desfrutará de um servidor PHP assíncrono de alto desempenho.
$ php artisan swoole:http start
Para ter acesso ao servidor, basta acessar a URL indicada no terminal.
Donate to Site
Renato
Developer